Fulfill Request
Fulfill a payment request by providing payer details and choosing crypto.
POST /v1/payments/requests/:reference/fulfill
No special permission required (payer fulfilling a request)
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
payer.chatId | string | Yes | Payer identifier |
crypto | string | Yes | Cryptocurrency to pay with |
network | string | Yes | Blockchain network |
Example Request:
POST /v1/payments/requests/2S-REQ001/fulfill
{
"payer": {
"chatId": "9012345678"
},
"crypto": "USDT",
"network": "trc20"
}
Response:
{
"success": true,
"message": "Request fulfilled successfully",
"payment": {
"reference": "2S-REQ001",
"status": "pending",
"depositAddress": "TLqfASsFNgZ8UhRqJq9fCaMLB5yauoYB1m",
"cryptoAmount": 17.72,
"crypto": "USDT",
"network": "trc20",
"fiatAmount": 25000,
"fiatCurrency": "NGN",
"transactionUsd": 17.36,
"rate": 1439.00,
"charge": {
"fiat": 0,
"crypto": 0.3474,
"usd": 0.35
},
"expiresAt": "2024-03-03T11:30:00.000Z"
}
}
Key Points:
- Rate is locked at fulfillment time (not request creation)
- Crypto amount is calculated based on current rate
- Deposit address is assigned at fulfillment
- Fee always charged from crypto on requests