PaymentMethodConfigOptions

PaymentMethodConfigOptions

PaymentMethodConfigOptions

Defines the object which is used to construct the PaymentMethodHandler.

Signature

interface PaymentMethodConfigOptions<T extends PaymentMethodArgs = PaymentMethodArgs> {
  code: string;
  description: LocalizedStringArray;
  createPayment: CreatePaymentFn<T>;
  settlePayment: SettlePaymentFn<T>;
  createRefund?: CreateRefundFn<T>;
  args: T;
  onStateTransitionStart?: OnTransitionStartFn<T>;
}

Members

code

property
type:
string
A unique code used to identify this handler.

description

property
A human-readable description for the payment method.

createPayment

property
type:
CreatePaymentFn<T>
This function provides the logic for creating a payment. For example, it may call out to a third-party service with the data and should return a CreatePaymentResult object contains the details of the payment.

settlePayment

property
type:
SettlePaymentFn<T>
This function provides the logic for settling a payment, also known as “capturing”. For payment integrations that settle/capture the payment on creation (i.e. the createPayment() method returns with a state of 'Settled') this method need only return { success: true }.

createRefund

property
type:
CreateRefundFn<T>
This function provides the logic for refunding a payment created with this payment method. Some payment providers may not provide the facility to programmatically create a refund. In such a case, this method should be omitted and any Refunds will have to be settled manually by an administrator.

args

property
type:
T

Optional provider-specific arguments which, when specified, are editable in the admin-ui. For example, args could be used to store an API key for a payment provider service.

Example

args: {
  apiKey: { type: 'string' },
}

See ConfigArgs for available configuration options.

onStateTransitionStart

property
This function, when specified, will be invoked before any transition from one PaymentState to another. The return value (a sync / async boolean) is used to determine whether the transition is permitted.