/api/v0/** — wallets, quotes, recipients, accounts, transactions, reference
data, onboarding, POBO and webhooks alike. There is no separate webhook
credential.
Every request carries two required headers.
Permissions
Each key carries permissions that gate which endpoints it can reach. A valid key that lacks the required permission is rejected with403, raised at the edge
before the request reaches the service — so it never confirms or denies that the
resource you asked for exists.
Failure modes
Authentication fails closed, and deliberately does not tell you which part was wrong.Your credentials were rejected
The header is missing or blank, the key is unknown, or the partner is inactive. These are indistinguishable by design. Retrying will not help — fix the configuration.
Valid key, missing permission
The credential authenticated but does not carry the permission this endpoint requires. Raised at the edge, so no resource id is confirmed or denied.
Rate limit exceeded
Too many requests for this key. Carries
X-RateLimit-Limit and X-RateLimit-Remaining. Nothing was processed — back off and retry.Endl could not reach the service
You authenticated successfully but the service behind the edge was unreachable. Retry with backoff.
Endl could not reach the credential store. Your key may be perfectly valid, so retry with backoff. This is deliberately not a
401.