Skip to content

Errors

Every error the API returns has the same shape:

{
"error": {
"code": "domain_not_verified",
"message": "paylink.ng is not verified for live sending. Add and verify it via POST /v1/domains, or develop with a sk_test_ key (sandbox needs no domain).",
"docs_url": "https://docs.sendbyte.africa/errors/domain_not_verified"
}
}

Messages state what happened and how to fix it. Every response also carries an x-request-id header; include it when contacting support.

Error codes

CodeStatusMeaning
validation_error422A field is missing or malformed; the message names it
authentication_error401Missing, malformed, revoked, or unknown API key or session
authorization_error403Key scope does not allow this action
domain_not_verified403Live send from an unverified domain
suppressed_recipient422A recipient is on the suppression list; the message says why
not_found404No such resource in this project
idempotency_conflict409Idempotency key reused with a different payload
rate_limit_exceeded429Default limit: 120 requests per minute per key
internal_error500Our fault; logged with your request id

In the SDKs

All SDKs raise a typed error carrying code, status, and docsUrl, so you can branch on code rather than parsing messages.