Skip to content

Decline or request a PIN link for one agent payout (owner only)

POST
/dashboard/v1/merchants/{merchantId}/{mode}/agent-approvals/{id}/decision
curl --request POST \
--url https://api.xaalis.org/dashboard/v1/merchants/example/test/agent-approvals/example/decision \
--header 'Content-Type: application/json' \
--header 'idempotency-key: example' \
--cookie better-auth.session_token=<better-auth.session_token> \
--data '{ "decision": "approve" }'
merchantId
required
string
mode
required
string
Allowed values: test live
id
required
string
idempotency-key
required

Required retry-safe key; reuse it only for the same operation and request body

string
>= 1 characters <= 255 characters

Required retry-safe key; reuse it only for the same operation and request body

Media typeapplication/json
object
decision
required
string
Allowed values: approve decline

Approval decision

Media typeapplication/json
object
object
required
string
Allowed values: agent_payout_approval
id
required
string
wallet_id
required
string
livemode
required
boolean
status
required
string
Allowed values: pending approved declined expired
amount
required
integer
fee
required
integer
currency
required
string
Allowed values: XOF
provider
required
string
Allowed values: wave orange_money
recipient
required
object
phone
required

Masked phone; not a provider-confirmed identity

string
action_id
required
string
expires_at
required
string
payout_id
required
string | null
created_at
required
string
purpose
required
string
Allowed values: agent_approval
pin_url
required
string | null
pin_expires_at
required
string
Example
{
"object": "agent_payout_approval",
"status": "pending",
"currency": "XOF",
"provider": "wave",
"purpose": "agent_approval"
}

Invalid request

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}

Sign-in required

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}

Forbidden

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}

Not found

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}

Idempotency conflict or invalid state

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}

Rate limited; see Retry-After response header

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}

Rate limiter or service unavailable

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}