API Reference
Test Cards
The following cards can be used with the test API to simulate various success and error scenarios.
Standard responses
Successful Response
The following cards issuing country is Australia.
The following cards issuing country is New Zealand.
Card Declined
400 card_declined
{
"error": "card_declined",
"error_description": "The card was declined",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
Insufficient Funds
400 insufficient_funds
{
"error": "insufficient_funds",
"error_description": "There are not enough funds available to process the requested amount",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
Invalid CVV
400 invalid_cvv
{
"error": "invalid_cvv",
"error_description": "The card verification code (cvc) was not in the correct format",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
Invalid Card
400 invalid_card
{
"error": "invalid_card",
"error_description": "The card was invalid",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
Processing Error
400 processing_error
{
"error": "processing_error",
"error_description": "An error occurred while processing the card",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
Suspected Fraud
400 suspected_fraud
{
"error": "suspected_fraud",
"error_description": "The transaction was flagged as possibly fraudulent and subsequently declined",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
Gateway Error
502 gateway_error
{
"error": "gateway_error",
"error_description": "An upstream error occurred while processing the transaction. Please try again.",
"charge_token": "ch_lfUYEBK14zotCTykezJkfg"
}
Unknown
400 unknown
{
"error": "unknown",
"error_description": "Sorry, an unknown error has occurred. This is being investigated"
}
Invalid Expiry
To simulate an invalid expiry date, provide the API with an expiry date in the past.
3D Secure
The following cards can be used with the test API to elicit a simulated 3D Secure process.
3D Secure challenge flow
202 accepted
{
"token": "ch_lfUYEBK14zotCTykezJkfg",
"status_message": "Pending",
"redirect_url": "https://sandbox.checkout.com/api2/v2/3ds/acs/sid_feixbit6us3utfedjulm6egnsu"
}
3D Secure frictionless flow
202 accepted
{
"token": "ch_lfUYEBK14zotCTykezJkfg",
"status_message": "Pending",
"redirect_url": "https://sandbox.checkout.com/api2/v2/3ds/acs/sid_feixbit6us3utfedjulm6egnsu"
}
3D Secure challenge flow failure
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 ›
3D Secure frictionless flow failure
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 ›
Dispute Category Test Cards
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.
Fraudulent
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"
]
}
Unrecognised
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"
]
}
Cancelled Recurring Payment
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"
]
}
Product or Service Not Received
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"
]
}
Not as Described
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"
]
}
Credit Not Issued
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"
]
}
Duplicate
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"
]
}
Incorrect Amount
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"
]
}
General
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"
]
}
Dispute Status Test Cards
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.
Evidence Under Review
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"
}
Won
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"
}
Lost
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"
}
Expired
Returns expired
status immediately.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "expired",
"amount": 100,
"currency": "AUD"
}
Resolved
Returns resolved
status immediately.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "resolved",
"amount": 100,
"currency": "AUD"
}
Arbitration Under Review
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"
}
Arbitration Won
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"
}
Arbitration Lost
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"
}
Cancelled
Returns cancelled
status immediately.
200
{
"token": "dis_JRs6Xgk4jMyF33yGijQ7Nw",
"category": "fraudulent",
"status": "cancelled",
"amount": 100,
"currency": "AUD"
}