Skip to main content
POST

Authorizations

Authorization
string
header
required

Your secret key as a Bearer token. The key prefix selects the environment: sk_test_... (staging) or sk_live_... (production); a key on the wrong host is refused with 403 Unauthorized Access. Each key is limited to 10 requests per minute (429 beyond that) and, on production, to the IP addresses on your dashboard allowlist when one is configured.

Headers

customer-id
string
required

The merchant customer this request acts on behalf of.

Body

application/json
amount
number
required

Amount in major units (NGN), not kobo: send 10000 for ₦10,000. Kobo are allowed as decimals (₦100.20 is 100.2) and are rounded to two places. Minimum 100, meaning ₦100.

Required range: x >= 100
Example:

10000

reference
string
required

Your unique reference for this transaction.

Example:

"99999533334"

transactionType
enum<string>
required

Use withdrawal for both a fiat bank withdrawal (with withdrawalDetails) and a crypto transfer (with blockchainDetails).

Available options:
withdrawal,
deposit,
wallet_transfer
Example:

"withdrawal"

currency
string
default:NGN

Optional. Defaults to NGN.

Example:

"NGN"

withdrawalDetails
object

Required for a fiat bank withdrawal (transactionType: withdrawal).

blockchainDetails
object

Required for a crypto transfer (transactionType: withdrawal); supply this instead of withdrawalDetails.

walletDetails
object

Required for a wallet_transfer to another Payluk wallet.

depositDetails
object

Optional on a deposit. Names a saved card to charge; omit it to collect through a hosted checkout.

Response

Payment intent created.