Documentation
¶
Index ¶
- Constants
- func NewStripeClient(ctx context.Context, retryOpts helper.RetryOptions, d StripeClientDependencies, ...) (*contract.StripeClient, error)
- type Blackbox
- type Client
- type ClientOption
- type ClientOptions
- type DefaultTool
- func (d *DefaultTool) AddStripeCard(ctx context.Context, opts contract.AddStripeCardOptions) (*stripeApi.PaymentMethod, error)
- func (d *DefaultTool) ConfirmStripePayment(ctx context.Context, opts contract.ConfirmStripePaymentOptions) (*stripeApi.PaymentIntent, error)
- func (d *DefaultTool) ConfirmStripeSetupIntent(ctx context.Context, opts contract.ConfirmStripeSetupIntentOptions) (*stripeApi.SetupIntent, error)
- func (d *DefaultTool) CreateStripeAccountLink(ctx context.Context, opts contract.CreateStripeAccountLinkOptions) (*stripeApi.AccountLink, error)
- func (d *DefaultTool) DecodeStripeEvent(ctx context.Context, opts contract.DecodeStripeEventOptions) (*stripeApi.Event, error)
- func (d *DefaultTool) DeleteStripeAccount(ctx context.Context, opts contract.DeleteStripeAccountOptions) (*stripeApi.Account, error)
- func (d *DefaultTool) DeleteStripeBankAccount(ctx context.Context, opts contract.DeleteStripeBankAccountOptions) error
- func (d *DefaultTool) ExtractNextActionURL(ctx context.Context, v any) (string, error)
- func (d *DefaultTool) LinkStripeBankAccount(ctx context.Context, opts contract.LinkStripeBankAccountOptions) (*stripeApi.BankAccount, error)
- func (d *DefaultTool) OpenStripeAccount(ctx context.Context, opts contract.OpenStripeAccountOptions) (*stripeApi.Account, error)
- func (d *DefaultTool) OpenStripePayment(ctx context.Context, opts contract.OpenStripePaymentOptions) (*stripeApi.PaymentIntent, error)
- func (d *DefaultTool) RefundStripePayment(ctx context.Context, opts contract.RefundStripePaymentOptions) (*stripeApi.Refund, error)
- func (d *DefaultTool) SortStripeBalance(ctx context.Context, opts contract.SortStripeBalanceOptions) (*contract.SortStripeBalanceResult, error)
- func (d *DefaultTool) StripeBalance(ctx context.Context, opts contract.StripeBalanceOptions) (*stripeApi.Balance, error)
- func (d *DefaultTool) StripePaymentIntent(ctx context.Context, opts contract.StripePaymentIntentOptions) (*stripeApi.PaymentIntent, error)
- func (d *DefaultTool) StripePaymentMethod(ctx context.Context, opts contract.StripePaymentMethodOptions) (*stripeApi.PaymentMethod, error)
- func (d *DefaultTool) UpdateStripeBankAccount(ctx context.Context, opts contract.UpdateStripeBankAccountOptions) (*stripeApi.BankAccount, error)
- func (d *DefaultTool) VerifyStripeCard(ctx context.Context, opts contract.VerifyStripeCardOptions) (*stripeApi.SetupIntent, error)
- type Dependencies
- type Loaded
- type StripeClientDependencies
- type StripeClientOptions
- type Tool
Constants ¶
const ( // feesCurrency is the currency used to charge Fabriktor application fees. FeesCurrency = money.USD // feesManual is a flat Fabriktor application fee in minor units for manual payments. FeesManual = 500 // INFO: 5.00 USD // FeesPlatformRate is Fabriktor’s platform commission rate, expressed as a fraction of 1 scaled by 100000. FeesPlatformRate = 5000 // INFO: 5% )
Variables ¶
This section is empty.
Functions ¶
func NewStripeClient ¶
func NewStripeClient(ctx context.Context, retryOpts helper.RetryOptions, d StripeClientDependencies, opts StripeClientOptions) (*contract.StripeClient, error)
Types ¶
type Client ¶
type Client interface {
Blackbox
contract.StripeOperator
}
func NewClient ¶
func NewClient(d Dependencies, opts ClientOptions) (Client, error)
func NewNoopClient ¶ added in v0.1.859
func NewNoopClient() Client
type ClientOption ¶
type ClientOption = contract.Opt[ClientOptions]
func WithLoaded ¶
func WithLoaded(x Loaded) ClientOption
type ClientOptions ¶
type ClientOptions struct {
Loaded
}
func ApplyClientOptions ¶
func ApplyClientOptions(opts *ClientOptions, modifiers ...ClientOption) ClientOptions
type DefaultTool ¶
func NewTool ¶
func NewTool(c Client, opts contract.ToolOptions[Client]) *DefaultTool
func (*DefaultTool) AddStripeCard ¶
func (d *DefaultTool) AddStripeCard(ctx context.Context, opts contract.AddStripeCardOptions) (*stripeApi.PaymentMethod, error)
AddStripeCard adds a card as a Stripe payment method.
func (*DefaultTool) ConfirmStripePayment ¶
func (d *DefaultTool) ConfirmStripePayment(ctx context.Context, opts contract.ConfirmStripePaymentOptions) (*stripeApi.PaymentIntent, error)
ConfirmStripePayment confirms an existing Stripe PaymentIntent.
func (*DefaultTool) ConfirmStripeSetupIntent ¶
func (d *DefaultTool) ConfirmStripeSetupIntent(ctx context.Context, opts contract.ConfirmStripeSetupIntentOptions) (*stripeApi.SetupIntent, error)
ConfirmStripeSetupIntent confirms an existing SetupIntent.
func (*DefaultTool) CreateStripeAccountLink ¶
func (d *DefaultTool) CreateStripeAccountLink(ctx context.Context, opts contract.CreateStripeAccountLinkOptions) (*stripeApi.AccountLink, error)
CreateStripeAccountLink creates an onboarding or refresh account link for a Stripe account.
func (*DefaultTool) DecodeStripeEvent ¶
func (d *DefaultTool) DecodeStripeEvent(ctx context.Context, opts contract.DecodeStripeEventOptions) (*stripeApi.Event, error)
DecodeStripeEvent decodes a Stripe webhook event.
func (*DefaultTool) DeleteStripeAccount ¶
func (d *DefaultTool) DeleteStripeAccount(ctx context.Context, opts contract.DeleteStripeAccountOptions) (*stripeApi.Account, error)
DeleteStripeAccount deletes a Stripe account by ID.
func (*DefaultTool) DeleteStripeBankAccount ¶
func (d *DefaultTool) DeleteStripeBankAccount(ctx context.Context, opts contract.DeleteStripeBankAccountOptions) error
DeleteStripeBankAccount deletes a bank account.
func (*DefaultTool) ExtractNextActionURL ¶ added in v0.1.916
ExtractNextActionURL extracts the redirect URL from supported Stripe entities.
func (*DefaultTool) LinkStripeBankAccount ¶
func (d *DefaultTool) LinkStripeBankAccount(ctx context.Context, opts contract.LinkStripeBankAccountOptions) (*stripeApi.BankAccount, error)
LinkStripeBankAccount links a bank account.
func (*DefaultTool) OpenStripeAccount ¶
func (d *DefaultTool) OpenStripeAccount(ctx context.Context, opts contract.OpenStripeAccountOptions) (*stripeApi.Account, error)
OpenStripeAccount creates a new Stripe account using the provided options.
func (*DefaultTool) OpenStripePayment ¶
func (d *DefaultTool) OpenStripePayment(ctx context.Context, opts contract.OpenStripePaymentOptions) (*stripeApi.PaymentIntent, error)
OpenStripePayment creates a Stripe PaymentIntent and applies Fabriktor fees.
Fee behavior:
- Computes a rate-based application fee using X100000 precision and banker’s rounding.
- If bypassed, no Stripe call is made and a dummy succeeded intent is returned with a flat manual fee.
- For non-payroll payments, the computed fee is applied directly to the intent.
- For payroll payments, the intent is created without fees; the computed fee is attached to the returned intent for later manual charging in a separate flow.
Account routing: - Payments paid to Fabriktor use the platform account. - Payments paid to a contractor use the connected account.
func (*DefaultTool) RefundStripePayment ¶
func (d *DefaultTool) RefundStripePayment(ctx context.Context, opts contract.RefundStripePaymentOptions) (*stripeApi.Refund, error)
RefundStripePayment creates a refund for an existing Stripe payment.
func (*DefaultTool) SortStripeBalance ¶
func (d *DefaultTool) SortStripeBalance(ctx context.Context, opts contract.SortStripeBalanceOptions) (*contract.SortStripeBalanceResult, error)
SortStripeBalance groups Stripe balance amounts by availability.
func (*DefaultTool) StripeBalance ¶
func (d *DefaultTool) StripeBalance(ctx context.Context, opts contract.StripeBalanceOptions) (*stripeApi.Balance, error)
StripeBalance retrieves Stripe balance.
func (*DefaultTool) StripePaymentIntent ¶
func (d *DefaultTool) StripePaymentIntent(ctx context.Context, opts contract.StripePaymentIntentOptions) (*stripeApi.PaymentIntent, error)
StripePaymentIntent retrieves a Stripe payment intent by ID.
func (*DefaultTool) StripePaymentMethod ¶
func (d *DefaultTool) StripePaymentMethod(ctx context.Context, opts contract.StripePaymentMethodOptions) (*stripeApi.PaymentMethod, error)
StripePaymentMethod retrieves a Stripe payment method by ID.
func (*DefaultTool) UpdateStripeBankAccount ¶
func (d *DefaultTool) UpdateStripeBankAccount(ctx context.Context, opts contract.UpdateStripeBankAccountOptions) (*stripeApi.BankAccount, error)
UpdateStripeBankAccount updates a bank account.
func (*DefaultTool) VerifyStripeCard ¶
func (d *DefaultTool) VerifyStripeCard(ctx context.Context, opts contract.VerifyStripeCardOptions) (*stripeApi.SetupIntent, error)
VerifyStripeCard creates a SetupIntent to verify a card.
type Dependencies ¶
type Dependencies struct {
C *contract.StripeClient
M contract.MoneyOperator
B contract.BasisOperator
R contract.Reader
E contract.EnvironmentOperator
}
type StripeClientDependencies ¶
type StripeClientDependencies struct {
E contract.EnvironmentOperator
H *http.Client
}
type StripeClientOptions ¶
type StripeClientOptions struct {
Loaded
}
type Tool ¶
type Tool interface {
contract.StripeOperator
}