Create a bank-transfer payment
create_paymentCreate a bank-transfer payment, open a single-use virtual account, and return the account number, bank, and amount to show your customer. Set exact or any amount and an expiry.
Instructions
Create a bank-transfer payment.
Create a bank-transfer payment. Pletopay opens a dynamic (single-use) virtual account for it and returns the account in bank_transfer: show the account number, bank and amount to your customer.
With amount_rule: exact (the default) transfers of any other amount are rejected. With any, whatever arrives is accepted and amount may be omitted.
The account expires with the payment: expires_in (seconds) or expires_at, between 5 minutes and 3 hours (the limit for one-time accounts; 400 expiry_out_of_range carries details.min_seconds / max_seconds); the default is your organization’s setting (30 minutes unless changed).
The payment becomes succeeded only when the credit is confirmed. Never treat a redirect or client-side callback as proof of payment: listen for payment.succeeded or retrieve the payment.
reference must be unique among your payments in this mode (409 duplicate_reference). Send an Idempotency-Key so a retried request can’t create a second payment.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| split | No | Split rule id (spl_…) to share the net amount with subaccounts | |
| amount | No | Amount in minor units (kobo). ₦50,000.00 = 5000000. Required when amount_rule is exact. | |
| expand | No | Embed related objects instead of their ids. `customer` embeds the customer. | |
| currency | Yes | ||
| customer | No | ||
| metadata | No | ||
| reference | Yes | Your unique reference for this payment (e.g. order id) | |
| expires_at | No | Absolute expiry, alternative to expires_in: 5 minutes to 3 hours from now | |
| expires_in | No | Seconds until the payment (and its account) expires: 300 to 10800 (one-time accounts last up to 3 hours) | |
| amount_rule | No | exact: transfers of any other amount are rejected. any: accept whatever is sent. | exact |
| description | No | ||
| idempotency_key | No | Optional. A unique key for this request; retrying with the same key returns the original result instead of acting twice. One is generated if omitted. |