Skip to main content
GET
Get transaction state
amount_minor is expressed in XAF. XAF has no sub-unit — amount_minor: 5000 means exactly 5 000 XAF.
Use this endpoint to poll transaction state when you don’t have a callback_url set, or to debug a specific transaction. For normal operations, prefer webhooks — they push results to you the moment the payment settles. For deposits, the response carries collection_mode. While a customer_initiated deposit is pending, it also carries the same instructions object as the creation response, so a deposit screen can be restored after a reload. Use the optional lang query parameter (fr default, or en) to choose the language of instructions.steps. instructions is null in every other case. See Deposit collection modes. Only transactions created by your application are visible. A winam_tx_id that belongs to another application returns 404, exactly as if it did not exist. Requires the transactions scope (see Authentication). See State Machine for the full list of possible state values and valid transitions.

Authorizations

X-API-Key
string
header
required

Path Parameters

winam_tx_id
string<uuid>
required

Query Parameters

lang
enum<string>
default:fr

Language of instructions.steps (fr | en)

Available options:
fr,
en

Response

Successful Response

winam_tx_id
string<uuid>
required

Winam internal transaction UUID

idempotency_key
string
required

Your original reference value

direction
string
required

"deposit" or "withdrawal"

operator
string
required

"mtn" or "orange"

provider
string
required

Internal provider used for this transaction

Example:

"sim_gateway_mtn"

msisdn
string
required

Player Mobile Money number in E.164 format

amount_minor
integer
required

Amount in XAF. Equal to amount_xaf from the request — XAF has no sub-unit (1 XAF = 1 unit).

Example:

5000

state
string
required

Current transaction state. See the state machine for the full transition diagram.

Example:

"succeeded"

state_updated_at
string<date-time> | null
required

Timestamp of the last state change

requires_human_approval
boolean
required

True for withdrawals awaiting operator approval

provider_tx_id
string | null
required

Provider-side reference (e.g. MTN transaction ID). Available once acknowledged.

Example:

"MTN2025010112345"

expires_at
string<date-time> | null
required

Confirmation deadline for deposits. Null once the transaction is in a terminal state.

created_at
string<date-time>
required
updated_at
string<date-time>
required
state_reason
string | null

Human-readable reason for the last state transition

collection_mode
enum<string> | null

Deposit collection mode (merchant_initiated | customer_initiated). Null for withdrawals.

Available options:
merchant_initiated,
customer_initiated
instructions
DepositInstructions · object | null

Player instructions, same shape as in the POST /api/v1/deposits response. Present only while a customer-initiated deposit is pending; null otherwise.