Skip to main content
POST
Auth method: Signed (HMAC) — this endpoint requires the full set of signed headers: x-access-id, x-request-id, x-timestamp, and an HMAC-SHA256 authorization signature. See Authentication.

Authorizations

authorization
string
header
required

Signed (HMAC) authentication. Required headers: x-access-id, x-request-id (UUID v4), x-timestamp (ISO 8601), and authorization (Base64 HMAC-SHA256 signature of {timeStamp, requestId, accessId} using your access secret).

Headers

authorization
string
required
x-timestamp
string<date-time>
required
x-request-id
string<uuid>
required
x-access-id
string
required
Content-Type
string
required

Body

application/json
method
enum<string>
required
Available options:
internal,
moneygram
Example:

"internal"

asset
string
required
Example:

"usdc"

amount
string
required
Example:

"100"

bank_code
string

Required when method is internal

Example:

"090267"

account_number
string

Required when method is internal

Example:

"0123456789"

first_name
string

Required when method is moneygram

Example:

"John"

last_name
string

Required when method is moneygram

Example:

"Doe"

dob
string

Required when method is moneygram. Format: YYYY-MM-DD

Example:

"1990-06-15"

mobile_number
string

Required when method is moneygram

Example:

"+2348012345678"

address
string

Required when method is moneygram

Example:

"12 Marina Street"

city
string

Required when method is moneygram

Example:

"Lagos"

postal_code
string

Required when method is moneygram

Example:

"100001"

country
string

Required when method is moneygram. ISO 3166-1 alpha-2

Example:

"NG"

reference
string

Optional. A stable identifier for the end user this payout is for. Echoed back to the anchor as the payout's merchant_reference for reconciliation. For custodial MoneyGram payouts it also segregates each of your end users into a distinct MoneyGram consumer (separate KYC and transaction-limit window), so the same user reuses the same MoneyGram identity across payouts. It must therefore be stable per end user — reuse the same value for the same person on every payout, and use a different value for a different person. Omit it (or set it to your own merchant id) to attribute the payout to your merchant account itself rather than a distinct end user.

Maximum string length: 500
Example:

"user-8821"

Response

Payout initiated successfully

status
string
message
string
data
object