Create payment intent
Creates a payment intent for a merchant customer. Set transactionType to one of:
withdrawal: a payout. For a fiat bank withdrawal supplywithdrawalDetails(bank account); for a crypto transfer supplyblockchainDetails(recipient address + network) instead.deposit: a card top-up of the customer’s wallet.depositDetails.cardIdis required and identifies a previously saved card to charge.wallet_transfer: send funds to another Payluk wallet viawalletDetails.
Card deposits
A deposit charges a saved (tokenized) card; it does not collect new card details. The cardId is the id of a card returned by List customer cards.
A customer only has saved cards when the merchant has the save-customer-cards feature enabled on their account. With it enabled, when a merchant customer pays with a card through Payluk’s inline checkout, Payluk tokenizes the card (stores its reusable payment authorization) against that customer. The tokenized card then appears in the cards list and can be charged here (via depositDetails.cardId) to top up the wallet without the customer re-entering card details.
Two-step flow
Creating the intent only stages the transaction; no money moves yet. To execute it, submit the returned reference to Verify payment. This separation exists for security.
All field values are lowercase. Requires the customer-id header.
Authorizations
Your secret key as a Bearer token. The key prefix selects the environment: sk_test_... (test) or sk_live_... (live).
Headers
The merchant customer this request acts on behalf of.
Body
Amount in the smallest currency unit. Minimum 100.
x >= 10010000
Your unique reference for this transaction.
"99999533334"
Use withdrawal for both a fiat bank withdrawal (with withdrawalDetails) and a crypto transfer (with blockchainDetails).
withdrawal, deposit, wallet_transfer "withdrawal"
Optional. Defaults to NGN.
"NGN"
Required for a fiat bank withdrawal (transactionType: withdrawal).
Required for a crypto transfer (transactionType: withdrawal); supply this instead of withdrawalDetails.
Required for a wallet_transfer to another Payluk wallet.
Required when transactionType is deposit. Identifies the saved card to charge.
Response
Payment intent created.