Status list¶
Payment statuses¶
Payment status defines the stage of transaction. The status can be transitional and final.
Status code | Final | Description |
---|---|---|
created | Invoice has been created; processing has not started. If MilkyPay does not return response 201 (Created) HTTP status code on your request, you should admit that the payment invoice creation was failed. | |
expired | ✔ | Invoice hit the lifetime limit without successful processing. |
process_pending | Process still being unknown and may not be known for an extended period. | |
processed | ✔* | Processed successfully. It isn't a final status since the payment can be refunded for different reasons. |
process_failed | ✔ | Processing has failed, may be set when an error occurs and the corresponding payment request has failed. This status is considered final due to the maximum number of attempts has been reached (default—after 5 attempts). |
refund_pending | Refunding is still being unknown and may not be known for an extended period. | |
partially_refunded | ✔ | Successfully refunded amount is less than the invoice amount. |
refunded | ✔ | Successfully refunded in full. |
refund_failed | ✔ | Refunding has been failed or cannot be completed. |
charged_back | ✔ | The payment transaction was claimed as a chargeback in full amount. |
partially_charged_back | ✔ | The payment transaction was claimed as a chargeback but in amount less than the invoice amount. |
* — The status is considered as final, but the payment can be rejected for additional reasons or recovered (in refund or chargeback cases).
Payment resolutions¶
A resolution is a transaction status clarification.
With transitional and successful final statuses, the related resolutions have an ok
code. With failed final status, the resolutions get one of the following codes:
Resolution code | Description |
---|---|
ok | The process completed successfully |
antifraud_error | Transaction is blocked by the provider's firewall |
auth_3ds_required | 3D-Secure verification is required for processing |
auth_otp_required | OTP verification is required for processing |
auth_fatal_error | The card authorisation failed |
card_expired | The card expired |
card_3ds_enrolled | 3D-Secure verification is required for this card processing |
card_blocked_by_invalid_pin | The card is blocked because of the incorrect PIN using |
card_lost | The card is reported as lost |
card_not_3ds_enrolled | The card doesn't support 3D-Secure verification |
card_stolen | The card is reported as stolen |
card_restricted | Transaction processing on this card are restricted |
card_restricted_by_acquirer | The acquirer restricts transaction processing on this card |
invalid_card_type | The card type is invalid |
card_usage_limit_violation | The card usage attempts limit is exceeded |
card_usage_issuer_limit_violation | The card usage issuer limit is exceeded |
card_verification_failed | The card verification failed |
client_auth_failed | The client authorisation failed |
customer_blocked | The customer isn't allowed to make this type of transactions |
general_decline | General decline |
transaction_expired | The transaction expired |
fatal_decline | Fatal decline |
fatal_error | Fatal transaction processing error |
fatal_invalid_card | The card is invalid and its re-using is forbidden |
forced_captured | The transaction process is finalised manually |
insufficient_funds | Insufficient funds |
invalid_3ds_code | Invalid 3D-Secure verification code |
invalid_amount | Invalid transaction amount |
invalid_card | The card is invalid |
invalid_cardholder | The cardholder name is incorrect |
invalid_cvv | The card CVV is incorrect |
invalid_details | The transaction details are incorrect |
invalid_expire_date | The card expiry date is incorrect |
invalid_otp_code | The OTP verification code is incorrect |
issuer_decline | General issuer decline |
issuer_unavailable | The card issuer is unavailable |
limit_violation | The card limit is exceeded |
unable_determine_3ds_enrolment | Unable to determine the card 3D-Secure enrollment status |
unknown | Unknown error |
The detailed level of the transaction's failure reason depends on the information openness of payment service providers (PSP) and issuer banks (for card transactions).
Note
- MilkyPay could expand the list of resolutions lately.
- Receiving a resolution other than listed should not affect the transaction processing because this attribute only informs about possible errors.
- The finality and success of the transaction processing are determined solely by the payment status (
status
).
Payment identifiers¶
At different stages of the payment received, the identifiers are processed with different names. Check the relations between them in the diagram below.
Note
Receiver Reference Number (RRN) and Acquirer Reference Number (ARN) are used only for card payments' identification.