Payment Intents

A PaymentIntent represents a payment flow. Create one, then let the customer pay via checkout or direct rail interaction.

Create a Payment Intent

POST /v1/payment_intents

Parameters

ParamTypeRequiredDescription
amountintegerYesAmount in minor units (e.g. FCFA)
currencystringYesXOF, XAF, GNF, BTC, USDT
railstringYesorange_money, moov, wave, mtn_momo, btc_lightning, btc_onchain, usdt_trc20
referencestringNoMerchant reference for reconciliation
metadataobjectNoKey-value metadata

Example

curl -X POST https://api.ynopay.com/v1/payment_intents \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 10000,
    "currency": "XOF",
    "rail": "orange_money",
    "metadata": { "order_id": "ORD-42" }
  }'

Response

{
  "id": "pi_abc123",
  "object": "payment_intent",
  "amount": 10000,
  "currency": "XOF",
  "status": "requires_payment_method",
  "rail": "orange_money",
  "metadata": { "order_id": "ORD-42" },
  "createdAt": 1716000000
}

Retrieve a Payment Intent

GET /v1/payment_intents/:id

List Payment Intents

GET /v1/payment_intents

Statuses

StatusDescription
requires_payment_methodAwaiting customer payment
pendingPayment initiated, awaiting confirmation
succeededPayment confirmed and reconciled
failedPayment failed or expired
canceledCanceled by merchant