API reference
Read a transfer
Authorization
partner-key X-OnLink-Key<token>
In: header
Path Parameters
id*string
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/transfers/string"{ "id": "bd9f1e6a-0000-4000-8000-000000000010", "status": "awaiting_confirmation", "rail": "mpesa", "amount": { "currency": "KES", "value": "1500.00" }, "fee": { "currency": "KES", "value": "1500.00" }, "destination": { "accountNumber": "254700000000", "accountName": "Jane Wanjiku", "bankCode": "11" }, "nameVerification": "verified", "verifiedAccountName": "JANE WANJIKU", "partnerReference": "ACME-TRF-000123", "failureCode": "PROVIDER_REJECTED", "createdAt": "2026-09-11T00:00:00.000Z", "confirmedAt": "2026-09-11T00:02:00.000Z", "settledAt": "2026-09-11T00:05:00.000Z", "confirmation": { "id": "df9f1e6a-0000-4000-8000-000000000030", "channel": "email", "deliveredTo": "o***@partner.co.ke", "expiresAt": "2026-09-11T00:15:00.000Z", "resendAvailableAt": "2026-09-11T00:00:15.000Z", "webhookDelivery": { "status": "delivered", "attempts": 1, "lastAttemptAt": "2026-09-11T00:00:02.000Z" }, "waiverNotApplied": "key_without_ip_allowlist" }}Read a batch, with every item outcome GET
Previous Page
Your USDT balance GET
The USDT you can use now. If OnLink holds your USDT for you (custody: onlink_managed) this is your OnLink USDT ledger: it already excludes USDT committed to a sell order or to a send that has started, and a buy counts once it has been delivered. If your USDT is in your own wallet (custody: partner_customer) it is read from that wallet and may be up to 30 seconds old. When your wallet cannot be read, available is null and unavailableReason names why; it is never reported as 0. A Collections credential is refused: that product holds no USDT.