Skip to content

API errors

API errors describe the reason for rejection of an operation. Error codes are transferred in <result> field of an API response.

Response with an error example

<?xml version="1.0" encoding="UTF-8"?>
<response>
    <osmp_txn_id>1234567890</osmp_txn_id>
    <result>5</result>
    <comment>Subscriber not found or incorrect phone number</comment>
</response>

Error codes can be fatal and non-fatal:

  • Fatal error means that resending the request with the same parameters will result in the same error. On receiving a fatal error QIWI stops processing the request and finishes it with an error.

  • Non-fatal error means that resending the request with the same parameters after a period of time may lead to success. When receiving a non-fatal error, QIWI will repeat requests increasing the interval until the operation succeeds, or a fatal error is received, or payment lifespan has ended (24 hours).

Code Description Fatality Comment
1 Temporary error. Please repeat your request later No Can be used during short-term maintenance period
4 Wrong subscriber’s identifier format Yes Used when the subscriber’s identifier format does not match the specified parameters, e.g. consists of 8 letters instead of 10 digits
5 The subscriber’s ID is not found Yes Subscriber’s identifier format is correct but the value is not found in the provider’s system
7 Payment acceptance forbidden by provider Yes Can be used if payment acceptance is not possible for any reason
31 Incorrect value in extra parameters Yes Used when the value sent in fields does not match the specified parameters, e.g. letters instead of digits or Latin letters instead of Cyrillics
32 Exchange rate changed. Please request the exchange rate again and repeat the payment Yes Used only if an exchange rate is sent in the additional parameters. The transmitted exchange rate is compared with the current one in the provider’s system. Error code 32 is returned if the rate has changed during the time between check and pay or between getinfo and check/payrequests
79 Subscribers account is not active Yes Can be used when the subscriber has a corresponding status in the provider’s system, e.g. when the account is not active or a card is blocked
90 Payment processing is not finished No Used if the transaction is still being processed at the time of the response
202 Incoming message parsing error Yes Can be used when the request format does not match the protocol, e.g. instead of account an acount with a typo is sent
204 Missing mandatory parameters Yes Used when the request is missing mandatory parameters, e.g. a sender/recipient name
241 The amount is too small Yes Used when the payment amount in the request is lower than the threshold specified by the provider
242 The amount is too large Yes Used when the payment amount in the request is higher than the threshold specified by the provider
300 Other error of the provider No Can be used if none of the above errors fit