Skip to content
Guarantee Pay Docs

Account

Errors

Errors return a non-200 HTTP status and this body:

{ "error": { "code": "INVALID_API_KEY", "message": "The API key provided is incorrect or invalid." } }
CodeHTTPCauseFix
INVALID_API_KEY400Header missing or wrongly named, key wrong, inactive or expired.Send MHS-GUARANTEEPAY-API-KEY as a header with the current key from API Settings.
IP_NOT_WHITELISTED403Your server IP is not in the IP list.Add the IP under Domains, or remove all IPs.
INVALID_JSON_PAYLOAD400Body is not valid JSON, or the endpoint path is wrong.Send Content-Type: application/json and check the URL.
INSUFFICIENT_SCOPE400Key lacks the permission for this endpoint.Edit the key and tick the permission.
PLAN_LIMIT403Monthly transaction quota reached.Upgrade using upgrade_url.
INVALID_URL400Return or webhook URL is invalid, or its domain is not whitelisted or not active.Use a full https:// URL and whitelist its host.
MISSING_FIELD400full_name or mobile_number is empty.Send all required fields.
INVALID_EMAIL400No valid email address.Send a real email.
INVALID_AMOUNT400Amount is not a positive plain decimal.Send e.g. "150.50".
INVALID_CURRENCY400Currency not enabled for the brand.Add it under Currency Settings.
INVALID_JSON / INVALID_METADATA400metadata is not an object or a valid JSON string.Send an object.
INVALID_CUSTOMER400Customer email is suspended by the admin.Unsuspend under Customers.
CREATE_FAILED500Database error while creating.Retry later.
INVALID_PP_ID400Unknown pp_id, another brand's payment, or not refundable.Use the pp_id returned by create charge with the same brand's key.
SMS_NOT_FOUND / INVALID_STATUS / INVALID_PAYLOAD404 / 400mark-sms-used could not find or update the SMS.Check trx_id, sender_key or sms_id.

Other symptoms

SymptomLikely causeFix
Payment stays pendingSMS not synced or not matchedCheck Devices and SMS data.
Webhook never arrivesNo webhook_url, non-2xx reply, redirect, or firewallOpen Transactions → Webhook log to see the exact HTTP code and response.