Skip to content
Test money only. BitMomo currently runs on test networks. Payments use testnet coins and no real money moves. Live keys are not available yet.

Retrieve a payment

GET
/gateway/payments/{id}

Required scope: payments:read.

Authoritative merchant detail. Verify order, environment, currency, recognized gross and risk before fulfillment; payout state is separate.

id
required
string format: uuid

Success

object
amount_ghs
required
string
/^-?[0-9]+(\.[0-9]+)?$/
chain_type
string
completed_at
string format: date-time
nullable
confirmations_received
integer
confirmations_required
integer
created_at
string format: date-time
crypto_amount
required
string
/^-?[0-9]+(\.[0-9]+)?$/
crypto_type
string
deposit_address
string
economics
required
object
approval_reason
string
nullable
approved_by
string format: uuid
nullable
discount_authority
string
nullable
fee_ghs
required
string
/^-?[0-9]+(\.[0-9]+)?$/
invoice_ghs
required
string
/^-?[0-9]+(\.[0-9]+)?$/
merchant_discount_ghs
required
string
/^-?[0-9]+(\.[0-9]+)?$/
merchant_net_ghs
required
string
/^-?[0-9]+(\.[0-9]+)?$/
policy_version
required
string
received_value_ghs
required
string
/^-?[0-9]+(\.[0-9]+)?$/
recognized_gross_ghs
required
string
/^-?[0-9]+(\.[0-9]+)?$/
surplus_ghs
required
string
/^-?[0-9]+(\.[0-9]+)?$/
environment
required
string
Allowed values: test live
expires_at
string format: date-time
nullable
fiat_currency
string
id
required
string format: uuid
locked_rate
required
string
/^-?[0-9]+(\.[0-9]+)?$/
merchant_id
required
string format: uuid
metadata
object
network
string
order_terms
required
object
description
required
string
nullable
order_id
required
string
nullable
redirect_url
required
string
nullable
payout
required
object
detail
required
string
headline
required
string
settlement_id
string format: uuid
settlement_method
string
settlement_status
string
support_contact
string
tone
required
string
pricing_terms
required
object
fee_percent
required
string
/^-?[0-9]+(\.[0-9]+)?$/
invoice_ghs
required
string
/^-?[0-9]+(\.[0-9]+)?$/
locked_rate
required
string
/^-?[0-9]+(\.[0-9]+)?$/
policy_version
required
string
spread_bps
required
integer
qr_code_data
string
quote_id
string format: uuid
nullable
rate_expires_at
string format: date-time
rate_locked_at
string format: date-time
risk_status
string
session_code
required
string
status
required

Snake_case lifecycle status. cancelled (explicit user/merchant cancel) is distinct from expired (time expiry).

string
Allowed values: created locked pending detected confirming confirmed settling completed expired failed flagged needs_review orphaned cancelled
token_contract
string
nullable
token_decimals
integer
tx_hash
string
nullable
updated_at
string format: date-time

Validation error

R15 canonical error envelope. Every 4xx/5xx JSON body carries these five keys, plus x-request-id header; 4xx machine fields (e.g. available_balance) merge in alongside and never shadow them.

object
error
required

Machine code (SCREAMING_SNAKE)

string
Example
VALIDATION_ERROR
message
required

Human-readable detail

string
Example
amount_ghs must be greater than zero
request_id
required

Mirrors the x-request-id response header

string format: uuid
retriable
required

True for 429/502/503/504 only; 400/401/403/404/409 are final

boolean
timestamp
required
string format: date-time

Invalid key

R15 canonical error envelope. Every 4xx/5xx JSON body carries these five keys, plus x-request-id header; 4xx machine fields (e.g. available_balance) merge in alongside and never shadow them.

object
error
required

Machine code (SCREAMING_SNAKE)

string
Example
VALIDATION_ERROR
message
required

Human-readable detail

string
Example
amount_ghs must be greater than zero
request_id
required

Mirrors the x-request-id response header

string format: uuid
retriable
required

True for 429/502/503/504 only; 400/401/403/404/409 are final

boolean
timestamp
required
string format: date-time

Scope, merchant or environment denied

R15 canonical error envelope. Every 4xx/5xx JSON body carries these five keys, plus x-request-id header; 4xx machine fields (e.g. available_balance) merge in alongside and never shadow them.

object
error
required

Machine code (SCREAMING_SNAKE)

string
Example
VALIDATION_ERROR
message
required

Human-readable detail

string
Example
amount_ghs must be greater than zero
request_id
required

Mirrors the x-request-id response header

string format: uuid
retriable
required

True for 429/502/503/504 only; 400/401/403/404/409 are final

boolean
timestamp
required
string format: date-time

Not found

R15 canonical error envelope. Every 4xx/5xx JSON body carries these five keys, plus x-request-id header; 4xx machine fields (e.g. available_balance) merge in alongside and never shadow them.

object
error
required

Machine code (SCREAMING_SNAKE)

string
Example
VALIDATION_ERROR
message
required

Human-readable detail

string
Example
amount_ghs must be greater than zero
request_id
required

Mirrors the x-request-id response header

string format: uuid
retriable
required

True for 429/502/503/504 only; 400/401/403/404/409 are final

boolean
timestamp
required
string format: date-time

Intent conflict

R15 canonical error envelope. Every 4xx/5xx JSON body carries these five keys, plus x-request-id header; 4xx machine fields (e.g. available_balance) merge in alongside and never shadow them.

object
error
required

Machine code (SCREAMING_SNAKE)

string
Example
VALIDATION_ERROR
message
required

Human-readable detail

string
Example
amount_ghs must be greater than zero
request_id
required

Mirrors the x-request-id response header

string format: uuid
retriable
required

True for 429/502/503/504 only; 400/401/403/404/409 are final

boolean
timestamp
required
string format: date-time

Rate limited

R15 canonical error envelope. Every 4xx/5xx JSON body carries these five keys, plus x-request-id header; 4xx machine fields (e.g. available_balance) merge in alongside and never shadow them.

object
error
required

Machine code (SCREAMING_SNAKE)

string
Example
VALIDATION_ERROR
message
required

Human-readable detail

string
Example
amount_ghs must be greater than zero
request_id
required

Mirrors the x-request-id response header

string format: uuid
retriable
required

True for 429/502/503/504 only; 400/401/403/404/409 are final

boolean
timestamp
required
string format: date-time

Internal error

R15 canonical error envelope. Every 4xx/5xx JSON body carries these five keys, plus x-request-id header; 4xx machine fields (e.g. available_balance) merge in alongside and never shadow them.

object
error
required

Machine code (SCREAMING_SNAKE)

string
Example
VALIDATION_ERROR
message
required

Human-readable detail

string
Example
amount_ghs must be greater than zero
request_id
required

Mirrors the x-request-id response header

string format: uuid
retriable
required

True for 429/502/503/504 only; 400/401/403/404/409 are final

boolean
timestamp
required
string format: date-time

Service unavailable

R15 canonical error envelope. Every 4xx/5xx JSON body carries these five keys, plus x-request-id header; 4xx machine fields (e.g. available_balance) merge in alongside and never shadow them.

object
error
required

Machine code (SCREAMING_SNAKE)

string
Example
VALIDATION_ERROR
message
required

Human-readable detail

string
Example
amount_ghs must be greater than zero
request_id
required

Mirrors the x-request-id response header

string format: uuid
retriable
required

True for 429/502/503/504 only; 400/401/403/404/409 are final

boolean
timestamp
required
string format: date-time