503.GET /ping, which creates nothing, and run your first end-to-end tests with the smallest amounts you can.404| What you sent | Result |
|---|---|
https://depix.eulen.app/deposit | 404 — the /api prefix is missing |
https://depix.eulen.app/api//deposit | 404 — your base URL ended in a slash, producing // |
https://depix.eulen.app/api/deposit | correct |
// is not normalised here — it is a different path, and it 404s.Invalid scope. when you create a credential| Command | Payout scope |
|---|---|
/addclientcredentials | withdrawal |
/apitoken (legacy) | withdraw |
403 Forbidden on a call you expected to workGET /ping and compare the scope array it echoes back against what the endpoint needs — deposit, withdraw / withdrawal, or user./user-info needs the user scope, which is easy to leave out when you created a credential scoped only to payments.401 Unauthorized on a call that worked beforePOST /api/v2/auth/refresh rather than logging in again on every call.Authorization: Bearer <token>.GET /ping tells you which it is: if it also returns 401, the problem is the token itself, not the endpoint you were calling.response.errorMessage, and the response that arrived has errorMessage at the top level with no response wrapper. 401, 403 and 429 answer that way.errorMessage from the top level and from inside response, whichever is present. See Errors & the response envelope.520: it is a business rejection, but it sits in the 5xx range, and most HTTP libraries retry 5xx automatically. A timeout surfacing as 503 is the other path in.POST /deposit and POST /withdraw. When one of them times out, confirm the outcome with GET /deposit-status or GET /withdraw-status before resending. See Synchronous requests & safe retries.delayDepixInHours required on every deposit — including the ones you never meant to delay. Omitting it is refused, and so is a value below the minimum.422: a compliance decision about that payer, and it is definitive. Retrying will not change it, and because there is no idempotency a retry can create a second operation.pixKey does not belong to the beneficiary you identified with taxNumber / euid. If you send both and they disagree, the request is rejected outright — and a mismatch we let through can still be refused by the receiving bank.GET /user-info shows your current daily volume and when it resets.200 or 201? Anything else counts as a failed delivery — including a 3xx redirect.Authorization: Basic followed by the secret you registered, as-is.GET /deposits?start=&end=&status= (start inclusive, end exclusive). Only deposits have a batch sweep — for payouts, poll GET /withdraw-status with the IDs you hold.X-Request-ID and X-Nonce from the response headers, and the deposit or withdrawal id. If it was a 422, the reference number from the message matters more than all three.