Initialize a transaction
Initiate a payment request to accept payment
Last updated
Initiate a payment request to accept payment
Last updated
NOTE: This section describes how to initialize a transaction on the server-side ie within your own application server using secret keys. To initialize a transaction on the client side (ie using public API keys), check out the quickstart section.
This API endpoint initializes a new payment from your backend/server.
A currency, amount, and customer object (with at least the customer's email) must be supplied. The customer is added to your list of customers if they do not already exist.
You may also provide a tx_ref
(transaction reference) for the payment transaction. This must be a unique alpha-numeric string that cannot be repeated again in your transaction list (for at least 2 years). If you do not know how to generate this, we've got you. Leave it blank and we will fill it in.
NOTE: Initializing a transaction only indicates you want a customer to make a payment. However, the customer may cancel without completing the payment or payment may simply fail. So always make sure you verify the transaction status before giving value.
/v1/transactions/server-initialize
customer
, merchant
Unique transaction reference.
The currency for the transaction.
The amount of the transaction.
The title of the transaction at checkout (if provided).
The link to the logo displayed during checkout (if provided).
A description for the payment displayed during checkout (if provided).
The dynamic redirect URL for the transaction. Used if the desired redirect url is different from the static redirect url set on the dashboard
The dynamic live webhook URL for the transaction. Used if the desired webhook url is different from the static live webhook url set on the dashboard
The dynamic test webhook URL for the transaction. Used if the desired webhook url is different from the static test webhook url set on the dashboard
added to allow validation of customer details
Indicates that a sale is to be delivered to the customer not a different person.
setting this flag will disable gateways that settle T+1 ie only instant settlement providers will be enabled. This flag enforces instant settlement on the corresponding on the payment link created
Collection of tags indicating bank accounts to settle the transaction payout.
Collection of tags indicating wallet accounts to settle a top-up.
(Optional) Payment channels you want to enable at checkout for your customers eg card, qrCode, etc
(Optional) Payment providers you want to enable at checkout for your customers eg flutterwave, paystack, etc
Metadata to attach to the transaction