OuiPay
API ReferenceTransfers

Create a transfer

POST /v1/transfers : submit a payout to a beneficiary.

POST /v1/transfers

Headers

HeaderRequiredValue
AuthorizationyesBearer sk_...
Idempotency-Keyyesunique per operation
Content-Typeyesapplication/json

Body

FieldTypeRequiredNotes
customer_idstringyesCustomer ULID
beneficiary_idstringyesVerified beneficiary ULID
amount_minorintyesPositive integer minor units
currencystringyesISO 4217
narrationstringnoStatement note for the recipient
quote_idstringnoFX quote id (cross-border only)

Request

curl https://api.ouipay.africa/v1/transfers \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: trf-001" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "01M2S17...",
    "beneficiary_id": "01M2S17...",
    "amount_minor": 250000,
    "currency": "NGN",
    "narration": "Invoice 8842 payout"
  }'

Response 201

The transfer object. status: "pending": the transaction is recorded and funds held; settlement follows the provider webhook.

Errors

HTTPerror.codeCause
400VALIDATIONInvalid field
403PIN_REQUIREDPIN step-up needed (pin_stepup)
422COMPLIANCE_DENIEDScreening blocked (compliance)
422LIMIT_EXCEEDEDAbove the tier limit (limits)
422INSUFFICIENT_FUNDSWallet cannot cover amount+fee

On this page