PaygateDeveloper documentation

Error catalogue

One page per error code. The type URL in any problem+json response links straight here, so an error in your logs is one click from what to do about it.

116 codes

CodeStatusModuleWhat to do
api.unknown_version400apiUnknown API version
api.versions_not_configured404apiThis surface has no version registry
bad_body400platformThe request body could not be read
bad_json400platformThe request body is not valid JSON
bad_request400platformThe request is malformed
checkout.amount_out_of_range422checkoutThe amount is outside the payment link's range
checkout.bad_cursor400checkoutThe pagination cursor is not valid
checkout.invalid_branding422checkoutThe checkout branding is not valid
checkout.invalid_payment_link422checkoutThe payment link is not valid
checkout.link_not_found404checkoutNo such payment link
checkout.link_unavailable409checkoutThis payment link can no longer be used
checkout.logo_not_found404checkoutThis checkout page has no logo
checkout.no_qr404checkoutThis checkout has no QR to show
checkout.return_url_not_allowed422checkoutThat return URL's host is not on the allow-list
checkout.session_not_found404checkoutNo such checkout session
empty_body400platformA JSON body is required
fees.assignment_not_found404feesNo fee assignment with that id
fees.assignment_not_proposed409feesThis assignment is not awaiting a decision
fees.invalid_event400feesevent must be payment, refund or payout
fees.invalid_method400feesUnknown payment method
fees.invalid_plan422feesThe fee plan version is not valid
fees.invalid_status400feesstatus must be draft, active or retired
fees.no_component422feesThe fee plan has no component for this event and method
fees.no_plan422feesNo fee plan is in force for this merchant
fees.plan_exists409feesA fee plan with this code already exists
fees.plan_immutable409feesOnly a draft version can be edited
fees.plan_not_active422feesThe plan version is not active and cannot be proposed
fees.plan_not_found404feesNo fee plan with that code
fees.proposal_pending409feesThis merchant already has a proposal awaiting a decision
fees.refund_context_required422feesPricing a refund needs refund_of
fees.version_not_activatable409feesThis version cannot be activated
http.cross_origin403httpCross-origin writes are refused
http.unknown_host404httpThis host does not serve this surface
idempotency_in_progress409platformA request with this key is still being processed
idempotency_key_required400platformThis write needs an Idempotency-Key header
idempotency_key_reused409platformThis Idempotency-Key was used with a different request
idempotency_key_too_long400platformIdempotency-Key is longer than 255 characters
identity.step_up_required401identityThis action needs recent re-authentication
invalid_reason422platformThe reason is not one of the allowed reason codes
invalid_transition422platformThat state transition is not allowed
merchants.bank_account_in_use409merchantsThat bank account cannot be removed yet
merchants.bank_account_not_found404merchantsThis merchant has no default bank account
merchants.document_not_found404merchantsNo such document on this merchant
merchants.incomplete409merchantsOnboarding is missing required information
merchants.invalid_bank_account422merchantsThe bank account details are not valid
merchants.invalid_body400merchantsThe request body could not be read
merchants.invalid_cursor400merchantsThe cursor is not an RFC 3339 instant
merchants.invalid_document422merchantsThe document is not usable
merchants.invalid_person400merchantsThe person's details are not valid
merchants.invalid_profile422merchantsdisplay_name is required
merchants.invalid_status409merchantsThe merchant is not in a status that allows this
merchants.invalid_tenant400merchantstenant_id is required
merchants.not_active403merchantsThis merchant's live keys do not work yet
merchants.not_editable409merchantsThe merchant profile cannot be edited in its current status
merchants.not_found404merchantsNo merchant profile for this tenant
merchants.not_ready_for_live409merchantsThe merchant does not yet meet the conditions for live mode
merchants.person_not_found404merchantsNo such person on this merchant
merchants.too_many_persons422merchantsThis merchant already has the maximum number of persons
module_disabled404platformThis module is not enabled for your tenant
not_found404platformNo such object
payments.amount_mismatch422paymentsThe provider reported a different amount than the payment
payments.attempt_not_allowed422paymentsThis payment cannot start an attempt with this method
payments.blocked_by_risk422paymentsRisk rules blocked the payment
payments.cancel_not_allowed422paymentsOnly an open payment can be canceled
payments.duplicate_reference409paymentsA payment with this reference is already open or paid
payments.evidence_required422paymentsManual resolution needs a provider reference and evidence
payments.invalid_amount422paymentsAmount is zero, negative, or in a currency you have not enabled
payments.invalid_expiry400paymentsexpires_in_minutes is outside the allowed range
payments.invalid_method400paymentsUnknown payment method
payments.invalid_outcome400paymentsUnknown outcome value
payments.invalid_reason422paymentsA reason is required for this action
payments.invalid_reason_code422paymentsThe refund reason_code is not one of the reason codes
payments.merchant_not_active409paymentsYour merchant account is not active for live payments
payments.not_found404paymentsNo payment with that id
payments.provider_unavailable422paymentsNo provider could create an instrument
payments.refund_cancel_not_allowed409paymentsThis refund can no longer be canceled
payments.refund_not_allowed409paymentsThis payment cannot be refunded for this amount
payments.resolve_not_allowed409paymentsThis payment cannot be resolved to that outcome
payments.separation_of_duties403paymentsThe principal who requested a refund cannot decide it
payments.too_many_attempts422paymentsThis payment has used all its attempts
permission_denied403platformThe credential is valid but lacks the scope
providers.callback_kind_unsupported404providersUnknown callback kind
providers.callback_rejected400providersThe callback failed verification
providers.credential_not_found404providersNo such credential for this provider
providers.declined422providersThe provider declined the instrument
providers.event_id_required400providersprovider_event_id is required
providers.invalid_provider422providersThe provider registration is not valid
providers.invalid_route422providersThe route is not valid
providers.invalid_secret_ref422providersThe credential reference is not usable
providers.invalid_status422providersUnknown provider status
providers.no_credential422providersNo valid credential for this provider, tenant and mode
providers.no_route404providersNo route is configured for this method and mode
providers.provider_exists422providersA provider with this code is already registered
providers.refund_unsupported422providersThis provider cannot refund this method
providers.retriable422providersThe provider is temporarily unavailable
providers.timeout504providersThe provider did not answer in time
providers.unknown_adapter422providersNo adapter of that name is registered
providers.unknown_provider404providersUnknown provider
providers.unknown_reference404providersNo instrument or refund is registered for that provider reference
rate_limited429platformToo many requests
ratelimit.invalid_mode400ratelimitmode must be live or test
ratelimit.tenant_required400ratelimitA tenant_id path segment is required
reason_required422platformThis action needs an X-Reason header
separation_of_duties403platformThe same principal cannot both request and approve
stale_version409platformThe record changed while you were editing it
tenant_required400platformA tenant context is required
testkit.advance_out_of_range422testkitThe clock cannot be advanced by that much
testkit.demo_failed422testkitThe approval demo command failed on purpose
testkit.invalid_profile422testkitprofile must be small, month or e2e
testkit.not_in_live404testkitTest-data operations are refused in live mode
testkit.not_simulatable409testkitThat object is already in a terminal state
testkit.seed_limittestkitSeeding would create more rows than the tenant allows
testkit.unavailabletestkitA module this test operation needs is not installed
testkit.unknown_job_kind422testkitNo worker is registered for that job kind
unauthenticated401platformNo usable credential on the request
validation_failed422platformOne or more fields are not valid