CreddotDocsCreddot Docs

Bank transfer and USSD from your own UI

Server-side collections when you show payment instructions yourself.

If you already have your own payment screen and only need transfer or USSD details, create a collection from your server. For anything involving cards, use hosted checkout instead: the collections endpoint does not accept card details.

Create a collection

POST /payments/collections with the collections:create permission.

curl https://api.creddot.com/api/v1/payments/collections \
  -H "x-api-key: $CREDDOT_API_KEY" \
  -H "x-api-secret: $CREDDOT_API_SECRET" \
  -H "x-idempotency-key: col-ORD-100001" \
  -H "content-type: application/json" \
  -d '{
    "amountMinor": "150000",
    "currency": "NGN",
    "channel": "BANK_TRANSFER",
    "reference": "ORD-100001",
    "customerEmail": "customer@example.com",
    "customerName": "Ada Okafor"
  }'
FieldNotes
channelBANK_TRANSFER, USSD or QR
customerEmail / customerPhoneAt least one is required
referenceYour unique reference; look the payment up with it later
callbackUrlOptional HTTPS URL for the provider's redirect

The response has the Creddot transactionId, status (usually PENDING), the feeMinor you'll be charged and netCreditMinor that lands in your wallet. Show the customer the instructions from the response, then wait for the transaction.success webhook or poll GET /transactions/by-reference/{reference}.

Dedicated accounts

GET /virtual-accounts lists your business's dedicated collection accounts. Transfers into them are recorded as collections automatically and trigger transaction.success.

On this page