Maly Maly Payments v1 Changelog Partners
Base URL Applied to every example. Stored only in this browser.
Operate

Errors

One error shape, and what each status code means.

Error response
{ "detail": "Human-readable error message" }
StatusMeaning
400Bad request
401Missing or invalid API key
403Action not permitted (e.g. method not enabled)
404Resource not found
409Idempotency conflict
422Validation error
502Upstream provider error
503Service temporarily unavailable, including rate-limit load shedding

How to handle each class#

ClassRetry?What to do
400, 422NoFix the request. Retrying an invalid body will not help.
401, 403NoCheck the key and whether the method is enabled on your account.
409NoYou reused an idempotency key with a different body. Look up the original transaction.
502, 503YesBack off with exponential jitter and retry with the same idempotency key. A 503 also covers load shedding, so treat it as "slow down".
!

Retry with the same key. When you retry after a 5xx or a timeout, reuse the original idempotency key. That is what makes the retry safe.

i

A failed transaction is not an error. A payment that reaches failed returned 202 at creation. Read failure_reason on the transaction rather than expecting an HTTP error.

Reading failure_reason#

failure_reason is human-readable text describing why a transaction failed. Log it and surface it to your operators and support staff. Do not branch application logic on its exact wording, because the text may change. Where you need to react to a specific cause in code, react to the transaction reaching failed and drive follow-up from your own retry policy rather than from string matching.

Maly Payments API v1 · Documentation 1.1 · July 2026
Maly Tech Ltd. This guide is provided for information. Where it differs from your signed agreement, the agreement applies.