🚨 Announcing Vendure v2 Beta

PaymentMethodConfigOptions

PaymentMethodConfigOptions

Defines the object which is used to construct the PaymentMethodHandler.

Signature

interface PaymentMethodConfigOptions<T extends ConfigArgs> extends ConfigurableOperationDefOptions<T> {
  createPayment: CreatePaymentFn<T>;
  settlePayment: SettlePaymentFn<T>;
  cancelPayment?: CancelPaymentFn<T>;
  createRefund?: CreateRefundFn<T>;
  onStateTransitionStart?: OnTransitionStartFn<PaymentState, PaymentTransitionData>;
}

Extends

Members

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 }.

cancelPayment

property
v1.7.0
type:
CancelPaymentFn<T>
This function provides the logic for cancelling a payment, which would be invoked when a call is made to the cancelPayment mutation in the Admin API. Cancelling a payment can apply if, for example, you have created a “payment intent” with the payment provider but not yet completed the payment. It allows the incomplete payment to be cleaned up on the provider’s end if it gets cancelled via Vendure.

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.

onStateTransitionStart

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.