PS Wallet Help
RUEN
Open wallet

Errors

The PS Wallet Pay API error format, all error codes, and what to do for each one.

On this page

If a request fails, the API responds with ok: false and an error description. Use name to determine the cause in your code; code matches the HTTP status of the response.

Format

json
{
  "ok": false,
  "error": { "code": 400, "name": "PARAM_AMOUNT_INVALID" }
}
FieldTypeDescription
codeNumberHTTP status of the response.
nameStringMachine-readable error name, for example INSUFFICIENT_FUNDS.

Error codes

CodeNameMeaning
400PARAM_<NAME>_REQUIREDA required parameter is missing, for example PARAM_AMOUNT_REQUIRED.
400PARAM_<NAME>_INVALIDInvalid parameter value, for example PARAM_ASSET_INVALID, PARAM_AMOUNT_INVALID.
400INSUFFICIENT_FUNDSThe app balance does not have enough funds.
400SPEND_ID_USEDA transfer with this spend_id has already been made.
400INVOICE_PAIDThe invoice is already paid (for example, with deleteInvoice).
400CHECK_ALREADY_ACTIVATEDThe check is already activated and cannot be deleted.
401UNAUTHORIZEDThe token is missing, invalid, or has been reissued, or the app has been deleted.
403METHOD_DISABLEDThe method (transfer or createCheck) is disabled in the "Security" section.
403IP_NOT_ALLOWEDThe IP allowlist is enabled and the request came from a different address.
403APP_FROZENThe app has been frozen by PS Wallet administration. Contact support.
403TRANSFERS_DISABLEDTransfers are restricted for the app owner (transfer and createCheck).
403TEMPORARILY_UNAVAILABLEThe operation in this coin is currently unavailable — for example, a transfer or check in rubles.
404USER_NOT_FOUNDThe recipient was not found: they have never opened PS Wallet.
404INVOICE_NOT_FOUNDThe invoice was not found.
404CHECK_NOT_FOUNDThe check was not found.
405METHOD_NOT_FOUNDNo such method exists.
405POST_REQUIREDA method that creates or deletes data was called via GET.
429TOO_MANY_REQUESTSThe request limit has been exceeded, try again later.
500INTERNAL_ERRORInternal error. Retry the request; for transfer, first check getTransfers by spend_id.
503TEMPORARILY_UNAVAILABLEPS Wallet Pay is temporarily unavailable.

New codes may be added. Handle unknown codes as a generic error.

Parameter errors

A parameter error name is built from the parameter name in uppercase: PARAM_ + name + _REQUIRED or _INVALID. For example, an invalid expires_in produces PARAM_EXPIRES_IN_INVALID.

MethodParameters that are validated
createInvoicecurrency_type, asset, fiat, accepted_assets, amount, description, hidden_message, paid_btn_name, paid_btn_url, payload, allow_comments, allow_anonymous, expires_in
getInvoicesasset, fiat, invoice_ids, status, offset, count
deleteInvoiceinvoice_id
transferuser_id, asset, amount, spend_id, comment
getTransfersasset, transfer_ids, offset, count
createCheckasset, amount, pin_to_user_id, pin_to_username
getChecksasset, check_ids, status, offset, count
deleteCheckcheck_id
getStatsstart_at, end_at

When each error occurs is described in the method sections: Invoices, Transfers, Checks, App, balance, and rates.

What to do when an error occurs

ErrorWhat to do
PARAM_…Fix the parameter. Retrying with the same data will not help.
INSUFFICIENT_FUNDSTop up the app balance or reduce the amount.
401 UNAUTHORIZEDCheck the token: it may have been reissued.
403 IP_NOT_ALLOWEDAdd the server address to the IP allowlist or clear the list.
403 METHOD_DISABLEDEnable the method in the dashboard: "Security".
429 TOO_MANY_REQUESTSWait and retry the request, increasing the pause between attempts.
500 INTERNAL_ERRORRetry the request later. For transfer, first check getTransfers by spend_id.
503 TEMPORARILY_UNAVAILABLEPS Wallet Pay is temporarily down — try again later.
403 APP_FROZEN, 403 TRANSFERS_DISABLEDContact PS Wallet support.
!

If a transfer request timed out or returned 500, do not send the transfer with a new spend_id — first check getTransfers with the original spend_id. Otherwise, the user may receive the money twice.

Updated November 9, 2026Translated automatically from Russian.