The following cards can be used with the test API to simulate various success and error scenarios.
The following cards issuing country is Australia.
The following cards issuing country is New Zealand.
400 card_declined
{
"error": "card_declined",
"error_description": "The card was declined",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
400 insufficient_funds
{
"error": "insufficient_funds",
"error_description": "There are not enough funds available to process the requested amount",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
400 invalid_cvv
{
"error": "invalid_cvv",
"error_description": "The card verification code (cvc) was not in the correct format",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
400 invalid_card
{
"error": "invalid_card",
"error_description": "The card was invalid",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
400 processing_error
{
"error": "processing_error",
"error_description": "An error occurred while processing the card",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
400 suspected_fraud
{
"error": "suspected_fraud",
"error_description": "The transaction was flagged as possibly fraudulent and subsequently declined",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
502 gateway_error
{
"error": "gateway_error",
"error_description": "An upstream error occurred while processing the transaction. Please try again.",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
400 unknown
{
"error": "unknown",
"error_description": "Sorry, an unknown error has occurred. This is being investigated"
}
To simulate an invalid expiry date, provide the API with an expiry date in the past.
The following cards can be used with the test API to elicit a simulated 3D Secure process.
202 accepted
{
"token": "ch_lfUYEBK14zotCTykezJkfg",
"status_message": "Pending",
"redirect_url": "https://sandbox.checkout.com/api2/v2/3ds/acs/sid_feixbit6us3utfedjulm6egnsu"
}
202 accepted
{
"token": "ch_lfUYEBK14zotCTykezJkfg",
"status_message": "Pending",
"redirect_url": "https://sandbox.checkout.com/api2/v2/3ds/acs/sid_feixbit6us3utfedjulm6egnsu"
}
202 accepted
{
"token": "ch_lfUYEBK14zotCTykezJkfg",
"status_message": "Pending",
"redirect_url": "https://sandbox.checkout.com/api2/v2/3ds/acs/sid_feixbit6us3utfedjulm6egnsu"
}
After following the redirect URL and completing the challenge, verifying the charge will result in a declined card error.
200
{
"success": false,
"token": "ch_lfUYEBK14zotCTykezJkfg",
"status_message": "Card Declined",
"error_message": "Card Declined"
}
Note the above is just a snippet of the returned response. View the full schema ›
202 accepted
{
"token": "ch_lfUYEBK14zotCTykezJkfg",
"status_message": "Pending",
"redirect_url": "https://sandbox.checkout.com/api2/v2/3ds/acs/sid_feixbit6us3utfedjulm6egnsu"
}
After following the redirect URL, verifying the charge will result in a declined card error.
200
{
"success": false,
"token": "ch_lfUYEBK14zotCTykezJkfg",
"status_message": "Card Declined",
"error_message": "Card Declined"
}
Note the above is just a snippet of the returned response. View the full schema ›
Using these test cards will result in a new dispute being created for a charge, with the dispute.category
differing depending on the last two digits of the card number.
The range for these test cards will encompass cards ending in 6x.
Note: These disputes will only have three possible statuses. They are evidence_required,evidence_under_review
, or accepted
. To simulate other statuses the API user will need to use the Dispute Status Test Cards.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "evidence_required",
"amount": 100,
"currency": "AUD",
"relevant_evidence": [
"proof_of_delivery_or_service",
"invoice_or_receipt",
"customer_communication",
"additional_evidence"
]
}
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "unrecognised",
"status": "evidence_required",
"amount": 100,
"currency": "AUD",
"relevant_evidence": [
"proof_of_delivery_or_service",
"invoice_or_receipt",
"customer_communication",
"additional_evidence"
]
}
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "cancelled_recurring",
"status": "evidence_required",
"amount": 100,
"currency": "AUD",
"relevant_evidence": [
"customer_communication",
"refund_or_cancellation_policy",
"recurring_transaction_agreement",
"additional_evidence"
]
}
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "product_service_not_received",
"status": "evidence_required",
"amount": 100,
"currency": "AUD",
"relevant_evidence": [
"invoice_or_receipt",
"customer_communication",
"proof_of_delivery_or_service",
"additional_evidence"
]
}
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "not_as_described",
"status": "evidence_required",
"amount": 100,
"currency": "AUD",
"relevant_evidence": [
"invoice_or_receipt",
"customer_communication",
"refund_or_cancellation_policy",
"additional_evidence"
]
}
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "credit_not_issued",
"status": "evidence_required",
"amount": 100,
"currency": "AUD",
"relevant_evidence": [
"invoice_or_receipt",
"customer_communication",
"refund_or_cancellation_policy",
"additional_evidence"
]
}
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "duplicate",
"status": "evidence_required",
"amount": 100,
"currency": "AUD",
"relevant_evidence": [
"proof_of_delivery_or_service",
"invoice_showing_distinct_transactions",
"additional_evidence"
]
}
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "incorrect_amount",
"status": "evidence_required",
"amount": 100,
"currency": "AUD",
"relevant_evidence": [
"invoice_or_receipt",
"customer_communication",
"refund_or_cancellation_policy",
"additional_evidence"
]
}
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "general",
"status": "evidence_required",
"amount": 100,
"currency": "AUD",
"relevant_evidence": [
"proof_of_delivery_or_service",
"invoice_or_receipt",
"invoice_showing_distinct_transactions",
"customer_communication",
"refund_or_cancellation_policy",
"recurring_transaction_agreement",
"additional_evidence"
]
}
Using these test cards will result in a new dispute being created for a charge, with the dispute.status
differing depending on the last two digits of the card number.
The range for these test cards will encompass cards ending in 8x. This allows for the category cards to expand into the 7x range if needed.
Some of these disputes will only change status after evidence has been submitted or the dispute has been accepted. Doing either of these things, regardless of the normal flow, will result in the stated statuses.
Note: These disputes will always be of category fraudulent
as this is assumed to be the most common category.
Returns evidence_under_review
status after submission of evidence.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "evidence_required",
"amount": 100,
"currency": "AUD"
}
Upon submission of evidence:
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "evidence_under_review",
"amount": 100,
"currency": "AUD"
}
Returns won
status after submission of evidence.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "evidence_required",
"amount": 100,
"currency": "AUD"
}
Upon submission of evidence:
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "won",
"amount": 100,
"currency": "AUD"
}
Returns lost
status after submission of evidence.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "evidence_required",
"amount": 100,
"currency": "AUD"
}
Upon submission of evidence:
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "lost",
"amount": 100,
"currency": "AUD"
}
Returns expired
status immediately.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "expired",
"amount": 100,
"currency": "AUD"
}
Returns resolved
status immediately.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "resolved",
"amount": 100,
"currency": "AUD"
}
Returns arbitration under review
status after submission of evidence.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "evidence_required",
"amount": 100,
"currency": "AUD"
}
Upon submission of evidence:
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "arbitration_under_review",
"amount": 100,
"currency": "AUD"
}
Returns arbitration won
status after submission of evidence.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "evidence_required",
"amount": 100,
"currency": "AUD"
}
Upon submission of evidence:
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "arbitration_won",
"amount": 100,
"currency": "AUD"
}
Returns arbitration lost
status after submission of evidence.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "evidence_required",
"amount": 100,
"currency": "AUD"
}
Upon submission of evidence:
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "arbitration_lost",
"amount": 100,
"currency": "AUD"
}
Returns cancelled
status immediately.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "cancelled",
"amount": 100,
"currency": "AUD"
}