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
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 /pay requests |
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 |