GoCardless error envelope: { error: { message, type, code, errors: [{reason,
field, message, links}] } } with type ∈ validation_failed | invalid_api_usage
| invalid_state | gocardless. Declines never arrive here — they surface as
payment failed statuses/events, not API errors. A 403's message follows
its first error reason: a feature not enabled on the account, an access
token without the scope, or an action only the GoCardless Dashboard allows.
On a /refunds path, a 403 with none of these reasons names both likely
causes: refunds not enabled (they are disabled by default) or a token
without permission.
GoCardless error envelope: { error: { message, type, code, errors: [{reason, field, message, links}] } } with type ∈ validation_failed | invalid_api_usage | invalid_state | gocardless. Declines never arrive here — they surface as payment
failedstatuses/events, not API errors. A 403's message follows its first error reason: a feature not enabled on the account, an access token without the scope, or an action only the GoCardless Dashboard allows. On a/refundspath, a 403 with none of these reasons names both likely causes: refunds not enabled (they are disabled by default) or a token without permission.