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.

Set webhook configuration

PUT
/gateway/webhooks/config

Required scope: webhooks:write.

The first configuration returns the signing secret once. Send url and events together.

Replaces the first endpoint; send URL and events together. A new endpoint secret is returned once. Omitted payment callback_url uses subscriptions.

object
events
required
Array<string>
is_active
boolean
default: true
url
required
string format: uri

Success

object
enabled
required
boolean
events
required
Array<string>
message
string
secret
string
nullable
secret_version
integer
url
required
string
webhooks
Array<object>
object
enabled
required
boolean
events
required
Array<string>
id
required
string format: uuid
secret_version
required
integer
sequence
required
integer
url
required
string format: uri

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