The process of responding to a Chargeback utilizes the following endpoints:
Endpoint | Description |
---|
/chargebackStatuses/{id}
| Used to check on the logged status changes of a Chargeback. |
/chargebackDocuments
| Used to create a record on the server for a chargeback document or file upload |
/files/chargebackDocuments/{chargebackDocumentId}
| Used to upload the actual chargeback evidence file, such as document or image, and associate it with the chargebackDocument server record. |
/chargebackMessages
| Used to send a Merchant response to an Issuer about a specific Dispute Stage option (Accept Liability or Respond with Evidence). |
Each of the endpoints above will require specific headers:
Chargeback Response Endpoint Headers
Check Chargeback Status Header
CODE
GET /chargebackStatuses HTTP/1.1
Content-Type: application/json
Host: api-test.payrix.com
APIKEY: {yourAPIKey}
Document Record Header
CODE
POST /chargebackDocuments HTTP/1.1
Content-Type: application/json
Host: api-test.payrix.com
APIKEY: {yourAPIKey}
File Upload Headers
CODE
POST /files/chargebackDocuments/{chargebackDocumentId} HTTP/1.1
Content-Length: 226
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="{yourDocumentFile}"
Content-Type: application/json
Host: api-test.payrix.com
(Form Data Placeholder)
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Chargeback Response Message Header
CODE
POST /chargebackMessages HTTP/1.1
Content-Type: application/json
Host: api-test.payrix.com
APIKEY: {yourAPIKey}
Responding to a Chargeback
With the steps below, you’ll utilize a combination of Chargeback web alerts to receive updates on changes to the Chargeback process and various endpoints to check the status, respond to, and provide evidence for the Merchant’s Chargeback response:
Retrieve the Chargeback ID
Find the Chargeback Status (Dispute Stage)
Create a chargebackDocument
Record for Your Evidence Upload
Upload each Evidence File to the associated chargebackDocument
Record
Submit your Response to the Chargeback’s Status using a Chargeback Message
The steps below assume you would like to continue to dispute the transaction chargeback for each dispute stage of the chargeback cycle. To accept liability for any chargeback, see the Accepting Liability section below.
Step 1: Retrieve the Chargeback ID
After receiving a Chargeback Created web alert, retrieve the Chargeback ID from the Alert and retrieve the value under the disputeId
or id
parameters shown in the alert response. You can also make a request using
Chargeback Created Example
CODE
{
"response": {
"alert": {
"subject": "You have a new notification on a dispute",
"disputeId": "p1_chb_z5f5e49bd2f7a3ba06df72", // Chargeback ID
"disputeCaseId": "123456789",
"disputeCreated": "10-14-2020",
"disputeCycle": "First",
"disclaimer": false,
"disputeReasonCode": "V1305",
"disputeReason": "Misrepresentation",
"disputeResponseDue": "11-12-2020",
"disputeStatus": "Open",
"paymentLastFour": "5656",
"paymentType": "Visa",
"txnId": "p1_txn_ID",
"txnAmount": "29.99",
"txnCardHolder": "",
"txnCreated": "08-10-2020"
},
"data": [
{
"id": "p1_chb_z5f5e49bd2f7a3ba06df72", // Chargeback ID
"created": "2020-10-14 01:03:06.4441",
"modified": "2020-10-14 01:03:06.4441",
"creator": "000000000000001",
"modifier": "000000000000001",
"merchant": "p1_mer_ID",
"txn": "p1_txn_ID",
"mid": "8888888888888",
"description": "",
"total": 2999,
"representedTotal": null,
"cycle": "first",
"currency": "USD",
"platform": "VCORE",
"ref": "123456789",
"reason": "Misrepresentation",
"reasonCode": "V1305",
"issued": "20201013",
"received": null,
"reply": "20201112",
"bankRef": "99999999999999999999",
"ChargebackRef": "123456789",
"status": "open",
"lastStatusChange": null,
"inactive": 0,
"frozen": 0,
"actionable": "0"
}
]
}
}
Step 2: Get the Chargeback Status (Dispute Stage)
Using the Chargeback ID you captured from Step 1, make the following API call to find the current status of the Chargeback.
Click here to see API code examples for getting the status of an open Chargeback.
Host URL
CODE
https://api.payrix.com/
Method, Endpoint & Headers
CODE
GET /chargebackStatuses/{id} HTTP/1.1
Content-Type: application/json
Host: api-test.payrix.com
APIKEY: {yourAPIKey}
Path Parameter | Description |
---|
{id}
| The unique Chargeback ID. Format Example: t1_chb_5fea5e49bd2f7a3ba06df72 |
Example Response Body
CODE
{
"id": "t1_chs_123abc4d567890efg1h2i34",
"created": "2024-03-29T21:26:55.016Z",
"modified": "2024-03-29T21:26:55.016Z",
"creator": "string",
"modifier": "string",
"chargeback": "string",
"chargebackMessage": "string",
"status": "open"
}
Click here for response body parameter descriptions.
Parameter | Type | Description | Format & Valid Values |
---|
id
| string | The Chargeback status ID. | Format: t1_chs_123abc4d567890efg1h2i34
|
created
| string | The date and time when the Chargeback was created. | Format: YYYY-MM-DD HH:MM:SS (UTC) Example: 2024-03-29T21:26:55.016Z
|
modified
| string | The date and time when the Chargeback was last modified. | Format: YYYY-MM-DD HH:MM:SS (UTC) Example: 2024-03-29T21:26:55.016Z
|
creator
| string | The login ID for the creator of the Chargeback. | Format: t1_log_123abc4d567890efg1h2i34
|
modifier
| string | The Login ID for the user that last updated the Chargeback. | Format: t1_log_123abc4d567890efg1h2i34
|
Chargeback
| string | The Chargeback ID | Format: t1_chb_123abc4d567890efg1h2i34
|
ChargebackMessage
| string | The current chargebackMessage record ID, if applicable. | Format: t1_chm_123abc4d567890efg1h2i34
|
status
| string | The current status of the Chargeback. | Valid Values open - Chargeback is open, responses may be submitted.
closed - Chargeback is closed, responses may no longer be submitted.
won - Chargeback won.
lost - Chargeback lost.
|
Step 3: Create a Chargeback Document Record for Your Evidence Upload
To prepare the server to accept your file upload and properly associate it with your portfolio and specific chargeback, you must first create a chargebackDocuments
record.
Create a Chargeback Document Record
Host URL
CODE
https://api.payrix.com/
Method, Endpoint & Headers
CODE
POST /chargebackDocuments HTTP/1.1
Content-Type: application/json
Host: api-test.payrix.com
APIKEY: {yourAPIKey}
Example Request Body
CODE
{
"chargeback": "t1_chb_123abc4d567890efg1h2i34",
"ref": "receipt_1",
"type": "jpg",
"name": "Receipt 1",
"description": "Receipt showing customer signature for the transaction.",
"status": "created",
"inactive": "0",
"frozen": "0",
}
Example Response Body
CODE
{
"id": "t1_chd_123abc4d567890efg1h2i34",
"created": "2024-03-29T21:26:55.016Z",
"modified": "2024-03-29T21:26:55.016Z",
"creator": "t1_log_123abc4d567890efg1h2i34",
"modifier": "t1_log_123abc4d567890efg1h2i34",
"chargeback": "t1_chb_123abc4d567890efg1h2i34",
"ref": "receipt_1",
"type": "jpg",
"name": "Receipt 1",
"description": "Receipt showing customer signature for the transaction.",
"status": "created",
"inactive": "0",
"frozen": "0",
}
/chargebackDocuments - Parameter Descriptions
Request Body
Parameter | Type | Required | Description | Format & Valid Values |
---|
chargeback
| id | Required | The Chargeback ID that this chargebackDocument record relates to. | Format: t1_chb_123abc4d567890efg1h2i34
|
type
| string | Optional | The type of the file that holds this chargebackDocument . | Valid Values jpg - JPG
jpeg - JPEG
gif - GIF
png - PNG
pdf - PDF
tiff - TIFF
tif - TIF
The value is set when the file is properly associated, otherwise will be null. |
ref
| string | Optional | The reference ID of this chargebackDocument . | This field is stored as a text string and must be between 1 and 100 characters long.
The value is set when the file is properly associated, otherwise will be null. |
description
| string | Optional | The description of this chargebackDocument . | This field is stored as a text string and must be between 1 and 100 characters long. |
status
| string | Required | The current status of the chargebackDocument asso-ciating the record to the chargeback. | Valid Values created - The ChargebackDocument has been created.
processed - The ChargebackDocument integration has been successful.
failed - The ChargebackDocument integration has failed.
|
name
| string | Optional | The name of this chargebackDocument . | This field is stored as a text string and must be between 1 and 100 characters long.
The value is set when the file is created and properly associated. Holds the real file name used by the user. |
inactive
| boolean | Required | Whether this chargebackDocument is marked as inactive. | |
frozen
| boolean | Required | Whether this chargebackDocument is marked as frozen. | |
Response Body
Parameter | Type | Description | Format & Valid Values |
---|
id
| id | The chargebackDocument record ID. | Format: t1_chd_123abc4d567890efg1h2i34
|
created
| date-time | The time that the chargebackDocument record was originally created. | Format: YYYY-MM-DD HH:MM:SS (UTC) Example: 2024-03-29T21:26:55.016Z
|
modified
| date-time | The time that the chargebackDocument record was most recently modified. | Format: YYYY-MM-DD HH:MM:SS (UTC) Example: 2024-03-29T21:26:55.016Z
|
creator
| id | The Login (User) ID for the user that created the chargebackDocument record. | Format: t1_log_123abc4d567890efg1h2i34
|
modifier
| id | The Login (User) ID for the user that most recently modified the chargebackDocument record. | Format: t1_log_123abc4d567890efg1h2i34
|
chargeback
| id | The Chargeback ID that this chargebackDocument record relates to. | Format: t1_chb_123abc4d567890efg1h2i34
|
type
| string | The type of the file that holds this chargebackDocument . | Valid Values jpg - JPG
jpeg - JPEG
gif - GIF
png - PNG
pdf - PDF
tiff - TIFF
tif - TIF
The value is set when the file is properly associated, otherwise will be null. |
ref
| string | The reference ID of this chargebackDocument . | This field is stored as a text string and must be between 1 and 100 characters long.
The value is set when the file is properly associated, otherwise will be null. |
description
| string | The description of this chargebackDocument . | This field is stored as a text string and must be between 1 and 100 characters long. |
status
| string | The current status of the chargebackDocument associating the record to the chargeback. | Valid Values created The ChargebackDocument has been created. processed The ChargebackDocument integration has been successful. failed The ChargebackDocument integration has failed.
|
name
| string | The name of this chargebackDocument . | This field is stored as a text string and must be between 1 and 100 characters long.
The value is set when the file is created and properly associated. Holds the real file name used by the user. |
inactive
| boolean | Whether this chargebackDocument is marked as inactive. | |
frozen
| boolean | Whether this chargebackDocument is marked as frozen. | |
Warning: You must repeat this step for each file you intend to upload. You cannot upload multiple files to a single chargebackDocuments
record.
Step 4: Upload the File to the associated Chargeback Document Record
Now that you’ve created the chargebackDocument record to associate your file to the specific chargeback, use the steps below to upload each evidence document you wish to upload.
Upload and Associate the File to the chargebackDocuments Record
Host URL
CODE
https://api.payrix.com/
Method, Endpoint & Headers
CODE
POST /files/chargebackDocuments/{chargebackDocumentId} HTTP/1.1
Content-Length: 226
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="{yourDocumentFile}"
Content-Type: application/json
Host: api-test.payrix.com
APIKEY: {yourAPIKey}
(Form Data Placeholder)
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Type | Parameter | Description |
---|
Path Parameter | {chargebackDocumentId}
| The chargebackDocument record ID created in response to Step 3 above. Format: t1_chd_123abc4d567890efg1h2i34 |
Header Parameter | {yourDocumentFile}
| The file path to your file being uploaded and associated with the specified chargebackDocument record. |
There is no standard request body here as the file upload uses a file path in the header and associates the file to the chargebackDocuments
record using the {chargebackDocumentId}
as a direct API path parameter.
Example Response Body
CODE
{
"id": "t1_fil_123abc4d567890efg1h2i34",
"created": "2024-03-29T21:26:55.016Z",
"modified": "2024-03-29T21:26:55.016Z",
"creator": "t1_log_123abc4d567890efg1h2i34",
"modifier": "t1_log_123abc4d567890efg1h2i34",
"credential": "t1_cdt_123abc4d567890efg1h2i34",
"type": "jpg",
"integration": "Payrix",
"direction": "upload",
"status": "pending",
"retries": 0,
"name": "Receipt 1 - t1_chd_123abc4d567890efg1h2i34",
"inactive": 0,
"frozen": 0
}
/files - Parameter Descriptions
Request Body
Parameter | Type | Required | Description | Format & Valid Values |
---|
credential
| id | Required | The authorization credential ID for the entity creating the upload. | Format: t1_cdt_123abc4d567890efg1h2i34
|
type
| string | Optional | The type of file being uploaded. | Valid Values jpg
jpeg
gif
png
pdf
tif
tiff
txt
xml
asc
rtf
csv
xls
doc
odt
ods
json
soap
|
integration
| string | Required | The processor the Merchant associated with the chargeback is integrated with | Valid Values APPLE ELAVON FEDACH FIRSTDATA NEUTRINO OFAC PAYRIX PLAID SIFT SOCURE SOUNDPAYMENTS TDBANK TDBANKCA VANTIV VCORE WEBSHIELD WELLSACH WELLSFARGO WFSINGLE WORLDPAY
|
direction
| string | Required | Whether the file was uploaded for storage or downloaded for viewing. | upload - Uploaded
download - Downloaded
|
status
| string | Optional | The status of the upload or download, if applicable. | Valid Values pending complete failed_all failed_transfer failed_disk_save
|
retries
| number | Required | The number of attempts to upload or download the file before marking the status as a failure. | Can be between 1 and 10. |
name
| string | Optional | The custom name for the file. | This field is stored as a text string and must be between 1 and 150 characters long. |
inactive
| boolean | Required | Whether this file is marked as inactive. | |
frozen
| boolean | Required | Whether this file is marked as frozen. | |
Response Body
Parameter | Type | Description | Format & Valid Values |
---|
id
| id | The newly createdfile record ID. | Format: t1_fil_123abc4d567890efg1h2i34
|
created
| date-time | The time that the file record was originally created. | Format: YYYY-MM-DD HH:MM:SS (UTC) Example: 2024-03-29T21:26:55.016Z
|
modified
| date-time | The time that the file record ID. was most recently modified. | Format: YYYY-MM-DD HH:MM:SS (UTC) Example: 2024-03-29T21:26:55.016Z
|
creator
| id | The Login (User) ID for the user that created the file record . | Format: t1_log_123abc4d567890efg1h2i34
|
modifier
| id | The Login (User) ID for the user that most recently modified the file record . | Format: t1_log_123abc4d567890efg1h2i34
|
credential
| id | The authorization credential ID for the entity creating the upload. | Format: t1_cdt_123abc4d567890efg1h2i34
|
type
| string | The type of file being uploaded. | Valid Values jpg
jpeg
gif
png
pdf
tif
tiff
txt
xml
asc
rtf
csv
xls
doc
odt
ods
json
soap
|
integration
| string | The processor the Merchant associated with the chargeback is integrated with | Valid Values APPLE ELAVON FEDACH FIRSTDATA NEUTRINO OFAC PAYRIX PLAID SIFT SOCURE SOUNDPAYMENTS TDBANK TDBANKCA VANTIV VCORE WEBSHIELD WELLSACH WELLSFARGO WFSINGLE WORLDPAY
|
direction
| string | Whether the file was uploaded for storage or downloaded for viewing. | upload - Uploaded
download - Downloaded
|
status
| string | The status of the upload or download, if applicable. | Valid Values pending complete failed_all failed_transfer failed_disk_save
|
retries
| number | The number of attempts to upload or download the file before marking the status as a failure. | Can be between 1 and 10. |
name
| string | The custom name for the file. | This field is stored as a text string and must be between 1 and 150 characters long. |
inactive
| boolean | Whether this file is marked as inactive. | |
frozen
| boolean | Whether this file is marked as frozen. | |
Step 5: Submit your Response using a Chargeback Message
Once each of your evidence files has been uploaded by repeating Steps 4 and 5 above for each document, you’ll submit your response to the current chargeback status using the steps below.
Submit the Chargeback Message for the associated Chargeback
Host URL
CODE
https://api.payrix.com/
Method, Endpoint & Headers
CODE
POST /chargebackMessages HTTP/1.1
Content-Type: application/json
Host: api-test.payrix.com
APIKEY: {yourAPIKey}
Request Bodies by Cycle and Stage
Chargeback Cycle | Dispute Stage | Request Body |
---|
Retrieval | Retrieval |
CODE
{
"type": "respond"
"contact": "example@examplemail.com",
"note": "{Your custom note}",
"chargeback": "{chargebackID}",
"date": "{currentDate}",
}
|
Chargeback | First Chargeback |
CODE
{
"type": "represent"
"contact": "example@examplemail.com",
"note": "{Your custom note}",
"chargeback": "{chargebackID}",
"date": "{currentDate}",
}
|
Representment | No available actions You submit your documents when choosing represent on a first chargeback, so there are no available actions in this phase |
Pre-Arbitration (Visa, MasterCard & Amex) |
CODE
{
"type": "represent"
"contact": "example@examplemail.com",
"note": "{Your custom note}",
"chargeback": "{chargebackID}",
"date": "{currentDate}",
}
|
Pre-Arbitration (Discover) |
CODE
{
"type": "respond"
"contact": "example@examplemail.com",
"note": "{Your custom note}",
"chargeback": "{chargebackID}",
"date": "{currentDate}",
}
|
Resolution | Arbitration |
CODE
{
"type": "acceptLiability"
"amount": "{chargebackAmount}",
"chargeback": "{chargebackID}",
"date": "{currentDate}",
}
|
Tip: If you are unsure of the card type for Pre-Arbitration, make the following request and look for the "method"
parameter:
GET /chargebacks/{id}?expand[txn][payment][]
1
= Amex, 2
= Visa, 3
= Mastercard, 4
= Diner's Club, 5
= Discover
Example Response Body
/chargebackMessages - Parameter Descriptions
Request Body
Parameter | Required | Type | Description | Format & Valid Values |
---|
type
| Required | string | The type of Chargeback message (response). | Valid Values assign - Assign to a Risk Analyst.
notate - Add a Note Only.
acceptLiability - Accept Liability for the Chargeback.
createPreArbitration - Begin Pre-Arbitration
represent - Begin the Representment stage.
respond - Respond to a generic Merchant dispute update.
requestArbitration - Request Arbitration as the next stage.
requestPreArbitration - Request Pre-Arbitration as the next stage.
requestResolutionToPreArbitration - Request an issuer-provided resolution
respondToDispute - Respond to a dispute that has passed representment.
repsondToPreArbitration - Respond to a Pre-Arbitration update.
unaccept - Revoke previously Accepted Liability for the chargeback.
|
status
| Required | string | The status of the Chargeback Message. | Valid Values requested processing failed denied processed
|
imported
| Required | boolean | Whether or not the chargeback was imported from another platform. | 0 - Not Imported
1 - Imported
|
contact
| Required | email | Provide the email you wish to receive updates about the Chargeback. | Must use a valid email address. Up to 100 characters may be used. |
note
| Optional | string | A custom note for the response that can be found in the Payrix system. | Alphanumeric text string that can be up to 10,000 characters. |
chargeback
| Required | string | The Chargeback ID associated with the response message. | Must be a valid chargeback ID. Format: t1_chb_123abc4d567890efg1h2i34
|
date
| Optional | date | The current date of your Chargeback response. | 8-digit date and time format: YYYYMMDD
|
amount
| Optional | number | The amount being accepted for the chargeback. Typically the full amount. | This number is an integer in cents. Example: 123400 = $1234.00
|
Response Body
Parameter | Type | Description | Format & Valid Values |
---|
id
| id | The chargebackMessage record ID. | Format: t1_chm_123abc4d567890efg1h2i34
|
created
| date-time | The time that the chargebackMessage record was originally created. | Format: YYYY-MM-DD HH:MM:SS (UTC) Example: 2024-03-29T21:26:55.016Z
|
modified
| date-time | The time that the chargebackMessage record was most recently modified. | Format: YYYY-MM-DD HH:MM:SS (UTC) Example: 2024-03-29T21:26:55.016Z
|
creator
| id | The Login (User) ID for the user that created the chargebackMessage record. | Format: t1_log_123abc4d567890efg1h2i34
|
modifier
| id | The Login (User) ID for the user that most recently modified the chargebackMessage record. | Format: t1_log_123abc4d567890efg1h2i34
|
status
| string | The status of the chargebackMessage . | Valid Values requested processing failed denied processed
|
imported
| boolean | Whether or not the chargebackMessage was imported from another platform. | 0 - Not Imported
1 - Imported
|
type
| string | The type of Chargeback message (response). | Valid Values assign - Assign to a Risk Analyst.
notate - Add a Note Only.
acceptLiability - Accept Liability for the Chargeback.
createPreArbitration - Begin Pre-Arbitration
represent - Begin the Representment stage.
respond - Respond to a generic Merchant dispute update.
requestArbitration - Request Arbitration as the next stage.
requestPreArbitration - Request Pre-Arbitration as the next stage.
requestResolutionToPreArbitration - Request an issuer-provided resolution
respondToDispute - Respond to a dispute that has passed representment.
repsondToPreArbitration - Respond to a Pre-Arbitration update.
unaccept - Revoke previously Accepted Liability for the chargeback.
|
contact
| email | Provide the email you wish to receive updates about the Chargeback. | Must use a valid email address. Up to 100 characters may be used. |
note
| string | A custom note for the response that can be found in the Payrix system. | Alphanumeric text string that can be up to 10,000 characters. |
chargeback
| string | The Chargeback ID associated with the response message. | Must be a valid chargeback ID. Format: t1_chb_123abc4d567890efg1h2i34
|
date
| date | The current date of your Chargeback response. | 8-digit date and time format: YYYYMMDD
|
amount
| number | The amount being accepted for the chargeback. Typically the full amount. | This number is an integer in cents. Example: 123400 = $1234.00
|
Step 6: Await Issuer Response
After submitting your response and supporting evidence, you’ll need to await a decision from the Issuer. There is no action required while awaiting a decision.
When the Issuer makes a decision based on the evidence provided by the Merchant, a new web alert for Chargeback Won or Chargeback Lost will be sent to notify the Merchant of the decision shown in the disputeStatus
field:
won
- The Issuer has reached a decision in favor of the Merchant. This decision can be challenged by the cardholder and escalated to the next Dispute stage.
lost
- The Issuer has reached a decision in favor of the Cardholder. This decision will be final and cannot be challenged by the Merchant.
Chargeback Won Web Alert Example
CODE
{
"response": {
"alert": {
"subject": "You have a new notification on a dispute",
"disputeId": "p1_chb_ID",
"disputeCaseId": "123456789",
"disputeCreated": "10-13-2020",
"disputeCycle": "First",
"disclaimer": false,
"disputeReasonCode": "M2713",
"disputeReason": "Invalid Chargeback",
"disputeResponseDue": "11-11-2020",
"disputeStatus": "Won", /// Dispute Status
"paymentLastFour": "1111",
"paymentType": "Master Card",
"txnId": "p1_txn_ID",
"txnAmount": "111.93",
"txnCardHolder": "",
"txnCreated": "09-26-2020"
},
"data": []
}
}
Chargeback Lost Web Alert Example
CODE
{
"response": {
"alert": {
"subject": "You have a new notification on a dispute",
"disputeId": "p1_chb_ID",
"disputeCaseId": "123456789",
"disputeCreated": "10-06-2020",
"disputeCycle": "First",
"disclaimer": false,
"disputeReasonCode": "C08",
"disputeReason": "Cardmember claims to have not received (or only partially received) the goods/services",
"disputeResponseDue": "10-13-2020",
"disputeStatus": "Closed",
"paymentLastFour": "0101",
"paymentType": "Amex",
"txnId": "p1_txn_ID",
"txnAmount": "200.00",
"txnCardHolder": "",
"txnCreated": "08-14-2020"
},
"data": []
}
}
Step 7: Reaching a Final Issuer Decision
Repeat Steps 2-5 as needed until the Issuer reaches a final decision in the Chargeback process that either:
The Cardholder accepts and concedes to given the evidence provided by the Merchant, or;
Has reached the Arbitration stage, resulting in a final, incontestable decision from the third-party card brand network.
Accepting Liability
Merchants can directly accept responsibility for the chargeback due to a fault of their own at any time during the Chargeback cycle during the First Chargeback and Pre-Arbitration dispute stages.
Note: At the Arbitration stage, nothing can be done except to Accept Liability for the decision made by the issuer.
As shown above, you’ll use the same POST /chargebackMessages
endpoint and request method that you did in Step 5, but you’ll change the type
parameter value in the request body to acceptLiability
.
Dispute Stage | Request Body |
---|
First Chargeback |
CODE
{
"type": "acceptLiability"
"amount": "{chargebackAmount}",
"chargeback": "{chargebackID}",
"date": "20240529",
}
|
Pre-Arbitration |
Arbitration |
Checking your Portfolio for Chargebacks
Below are additional API endpoint requests that can be made to check on the general list of all new and existing Chargebacks in your portfolio for a higher-level overview.
There are multiple API endpoint resources associated with Chargebacks, however, all you will generally use is /chargebacks
which will return all the necessary results necessary to track the stages of a Chargeback.
CODE
https://api.payrix.com/chargebacks
Chargeback Response Fields
See a general list of reoccurring Chargeback response body parameters that a Merchant will encounter throughout the Chargeback process:
Click here to see a list of all Chargeback response fields and their individual descriptions.
Field | Description |
---|
id
| The system-generated Chargeback ID. |
created
| Date and time of when Chargeback was created |
modified
| Date and time of when Chargeback was last modified |
creator
| The Login ID of the user created the Chargeback |
modifier
| The Login ID of the user who last modified the Chargeback |
merchant
| The Merchant ID associated with the Chargeback. |
txn
| The Transaction ID for the payment transaction being disputed. |
mid
| The payment processor’s MID number (such as Vantiv, or WorldPay). |
description
| Summary of the reason for the Chargeback. |
total
| The total transaction amount for the associated transaction being disputed. |
representedTotal
| The total for this Chargeback if it has been represented. |
paymentMethod
| The type of payment method used in the transaction being disputed. Valid Values: |
cycle
| The Chargeback Cycle. Valid Values: retrieval - Cycle to collect initial documentation. first - Cycle to initiate first transaction Chargeback.
arbitration - Cycle for Arbitration
reversal – Cycle to reverse charged-back funds to the Merchant account.
representment - Cycle to submit evidence supporting Merchant’s claims.
preArbitration - Cycle to submit more evidence for Arbitration.
arbitrationLost - Arbitration decision was ruled against the Merchant.
arbitrationSplit - Arbitration decision splits the disputed amount into a partial Chargeback.
arbitrationWon - Arbitration decision was ruled in favor of the Merchant.
issuerAcceptPreArbitration - The Issuer accepted the Merchant’s Pre-Arbitration acceptance request.
issuerDeclinedPreArbitration - The Issuer denied the Merchant’s Pre-Arbitration acceptance request.
responseToIssuerPreArbitration - The Merchant’s decision to accept liability or proceed with Arbitration when requested.
merchantAcceptedPreArbitration - The Merchant has decided to proceed with Arbitration.
merchantDeclinedPreArbitration - The Merchant has decided to accept liability for the Dispute and concede the Chargeback.
preCompliance -
compliance
|
currency
| Currency Code. Default Value: USD . Valid Values: AED - United Arab Emirates dirham
AFN - Afghan afghani
ALL - Albanian lek
AMD - Armenian dram
ANG - Netherlands Antillean guilder
AOA - Angolan kwanza
ARS - Argentine peso
AUD - Australian dollar
AWG - Aruban florin
AZN - Azerbaijani manat
BAM - Bosnia and Herzegovina convertible mark
BBD - Barbados dollar
BDT - Bangladeshi taka
BGN - Bulgarian lev
BHD - Bahraini dinar
BIF - Burundian franc
BMD - Bermudian dollar
BND - Brunei dollar
BOB - Boliviano
BOV - Bolivian Mvdol
BRL - Brazilian real
BSD - Bahamian dollar
BTN - Bhutanese ngultrum
BWP - Botswana pula
BYN - Belarusian ruble
BZD - Belize dollar
CAD - Canadian dollar
CDF - Congolese franc
CHE - WIR Euro
CHF - Swiss franc
CHW - WIR Franc
CLF - Unidad de Fomento
CLP - Chilean peso
CNY - Renminbi (Chinese) yuan
COP - Colombian peso
COU - Unidad de Valor Real
CRC - Costa Rican colon
CUC - Cuban convertible peso
CUP - Cuban peso
CVE - Cape Verde escudo
CZK - Czech koruna
DJF - Djiboutian franc
DKK - Danish krone
DOP - Dominican peso
DZD - Algerian dinar
EGP - Egyptian pound
ERN - Eritrean nakfa
ETB - Ethiopian birr
EUR - Euro
FJD - Fiji dollar
FKP - Falkland Islands pound
GBP - Pound sterling
GEL - Georgian lari
GHS - Ghanaian cedi
GIP - Gibraltar pound
GMD - Gambian dalasi
GNF - Guinean franc
GTQ - Guatemalan quetzal
GYD - Guyanese dollar
HKD - Hong Kong dollar
HNL - Honduran lempira
HRK - Croatian kuna
HTG - Haitian gourde
HUF - Hungarian forint
IDR - Indonesian rupiah
ILS - Israeli new shekel
INR - Indian rupee
IQD - Iraqi dinar
IRR - Iranian rial
ISK - Icelandic króna
JMD - Jamaican dollar
JOD - Jordanian dinar
JPY - Japanese yen
KES - Kenyan shilling
KGS - Kyrgyzstani som
KHR - Cambodian riel
KMF - Comoro franc
KPW - North Korean won
KRW - South Korean won
KWD - Kuwaiti dinar
KYD - Cayman Islands dollar
KZT - Kazakhstani tenge
LAK - Lao kip
LBP - Lebanese pound
LKR - Sri Lankan rupee
LRD - Liberian dollar
LSL - Lesotho loti
LYD - Libyan dinar
MAD - Moroccan dirham
MDL - Moldovan leu
MGA - Malagasy ariary
MKD - Macedonian denar
MMK - Myanmar kyat
MNT - Mongolian tögrög
MOP - Macanese pataca
MRU - Mauritanian ouguiya
MUR - Mauritian rupee
MVR - Maldivian rufiyaa
MWK - Malawian kwacha
MXN - Mexican peso
MXV - Mexican Unidad de Inversion
MYR - Malaysian ringgit
MZN - Mozambican metical
NAD - Namibian dollar
NGN - Nigerian naira
NIO - Nicaraguan córdoba
NOK - Norwegian krone
NPR - Nepalese rupee
NZD - New Zealand dollar
OMR - Omani rial
PAB - Panamanian balboa
PEN - Peruvian sol
PGK - Papua New Guinean kina
PHP - Philippine piso
PKR - Pakistani rupee
PLN - Polish złoty
PYG - Paraguayan guaraní
QAR - Qatari riyal
RON - Romanian leu
RSD - Serbian dinar
RUB - Russian ruble
RWF - Rwandan franc
SAR - Saudi riyal
SBD - Solomon Islands dollar
SCR - Seychelles rupee
SDG - Sudanese pound
SEK - Swedish krona/kronor
SGD - Singapore dollar
SHP - Saint Helena pound
SLL - Sierra Leonean leone
SOS - Somali shilling
SRD - Surinamese dollar
SSP - South Sudanese pound
STN - São Tomé and Príncipe dobra
SVC - Salvadoran colón
SYP - Syrian pound
SZL - Swazi lilangeni
THB - Thai baht
TJS - Tajikistani somoni
TMT - Turkmenistan manat
TND - Tunisian dinar
TOP - Tongan pa'anga
TRY - Turkish lira
TTD - Trinidad and Tobago dollar
TWD - New Taiwan dollar
TZS - Tanzanian shilling
UAH - Ukrainian hryvnia
UGX - Ugandan shilling
USD - United States dollar
USN - United States dollar
UYI - Uruguay Peso en Unidades Indexadas
UYU - Uruguayan peso
UZS - Uzbekistan som
VEF - Venezuelan bolívar
VND - Vietnamese đồng
VUV - Vanuatu vatu
WST - Samoan tala
XAF - CFA franc BEAC
XAG - Silver
XAU - Gold
XBA - European Composite Unit
XBB - European Monetary Unit
XBC - European Unit of Account
XBD - European Unit of Account
XCD - East Caribbean dollar
XDR - Special drawing rights
XOF - CFA franc BCEAO
XPD - Palladium
XPF - CFP franc
XPT - Platinum
XSU - SUCRE
XUA - ADB Unit of Account
YER - Yemeni rial
ZAR - South African rand
ZMW - Zambian kwacha
ZWL - Zimbabwean dollar
|
platform
| The platform used to process the transaction being disputed. Valid Values: APPLE - Apple Payment Processor
ELAVON - ELAVON Payment Processor
FIRSTDATA - FirstData Payment Processor
GOOGLE - Google Payment Processor
VANTIV - WorldPay / Vantiv eComm Payment Processor (VAP)
VCORE - WorldPay / Vantiv Core Payment Processor
WELLSACH - Wells Fargo Merchant Services Payment Processor (ACH)
WELLSFARGO - Wells Fargo Merchant Services Payment Processor
WFSINGLE - Wells Fargo Single Payment Processor
|
ref
| Chargeback Processing Reference Number |
reason
| Reason for the Chargeback |
reasonCode
| Reason Code for the Chargeback that is provided by the Card Brand. Valid Values: Visa 10.1 - EMV Liability Shift Counterfeit Fraud
10.2 - EMV Liability Shift Non-Counterfeit Fraud
10.3 - Other Fraud: Card-Present Environment / Condition
10.4 - Other Fraud: Card-absent Environment / Condition
10.5 - Visa Fraud Monitoring Program
11.1 - Card Recovery Bulletin
11.2 - Declined Authorization
11.3 - No Authorization
12.1 - Late Presentment
12.2 - Incorrect Transaction Code
12.3 - Incorrect Currency
12.4 - Incorrect Account Number
12.5 - Incorrect Amount
12.6 - Duplicate Processing / Paid by Other Means
12.7 - Invalid Data
13.1 - Merchandise / Services Not Received
13.2 - Canceled Recurring Transaction
13.3 - Not as Described or Defective Merchandise / Services
13.4 - Counterfeit Merchandise
13.5 - Misrepresentation
13.6 - Credit Not Processed
13.7 - Canceled Merchandise / Services
13.8 - Original Credit Transaction Not Accepted
13.9 - Non-receipt of Cash or Load Transaction Value
MasterCard 4837 - No Cardholder Authorization
4840 - Fraudulent Processing of Transactions
4849 - Questionable Merchant Activity
4863 - Cardholder Does Not Recognize / Potential Fraud
4870 - Chip Liability Shift
4871 - Chip / PIN Liability Shift--Lost / Stolen / Never Received Issue (NRI) Fraud
4807 - Warning Bulletin File
4808 - Authorization-Related Chargeback
4812 - Account Number Not on File
4831 - Transaction Amount Differs
4834 - Point of Interaction Error
4842 - Late Presentment
4846 - Incorrect Currency Code
4841 - Canceled Recurring or Digital Goods Transactions
4853 - Cardholder Dispute
4854 - Cardholder Dispute - Not Elsewhere Classified
4855 - Goods or Services Not Provided
4859 - No Show / Addendum / ATM Dispute
4860 - Credit Not Processed
American Express (AMEX) FR2 - Fraud Full Recourse Program
FR4 - Immediate Chargeback Program
FR6 - Partial Immediate Chargeback Program
F10 - Missing Imprint
F14 - Missing Signature
F24 - No Cardmember Authorization
F29 - Card Not Present
F30 - EMV Counterfeit
F31 - EMV List / Stolen / Non-received Inquiry / Miscellaneous
R03 - Insufficient Reply
R13 - No reply
M01 - Chargeback Authorization
A01 - Charge amount exceeds the authorization amount
A02 - No valid authorization
A08 - Authorization approval expire
P01 - Unassigned Card Number
P03 - Credit Processed as Charge
P04 - Charge Processed as Credit
P05 - Incorrect Charge Amount
P07 - Late Submission
P08 - Duplicate Charge
P22 - No-Matching Card Number
P23 - Currency Discrepancy
C02 - Credit not processed
C04 - Goods/services returned or refused
C05 - Goods/services canceled
C08 - Goods / Services Not Received or Only Partially Received
C14 - Paid by Other Means
C18 - Rental "No Show" or Car Deposit Canceled
C28 - Canceled Recurring Billing
C31 - Goods / Services Not as Described
C32 - Goods / Services Damaged or Defective
M10 - Vehicle Rental - Capital Damages
M49 - Vehicle Rental - Theft or Loss of Use
Discover UA01 - Fraud / Card Present Environment
UA02 - Fraud / Card-Not-Present Environment
UA05 - Fraud / Counterfeit Chip Transaction
UA06 - Fraud / Chip-and-Pin Transaction
UA10 - Request Transaction Receipt (swiped card transactions)
UA11 - Cardholder claims fraud (swiped transaction, no signature)
AT - Authorization Non-compliance
DA - Declined Authorization
EX - Expired Card
NA - No Authorization
IN - Invalid Card Number
LP - Late Presentment
AA - Cardholder Does Not Recognize
AP - Canceled Recurring Transaction
AW - Altered Amount
CD - Credit Posted as Card Sale
DP - Duplicate Processing
IC - Illegible Sales Data
NF - Non-Receipt of Cash from ATM
PM - Paid by Other Means
RG - Non-Receipt of Goods or Services
RM - Quality Discrepancy
RN2 - Credit Not Received
NC - Not Classified
|
issued
| Date the Chargeback is issued (Format: YYYYMMDD ) |
received
| Date the Chargeback was received by processor (Format: YYYYMMDD ) |
reply
| Latest date by which the response must be received by (Format: YYYYMMDD ) |
bankRef
| Bank reference code associated with the Chargeback Dispute. |
ChargebackRef
| Chargeback reference code used by Processor. |
status
| The current status of the Chargeback. Valid Values: open - Chargeback is open, responses may be submitted
closed - Chargeback is closed, responses may no longer be submitted
won - Chargeback won
lost - Chargeback lost
|
lastStatusChange
| The Chargeback Status ID of the most recent Chargeback Status change. |
inactive
| Whether this Chargeback resource is inactive or not. Valid Values: |
frozen
| Whether this Chargeback resource is frozen or not. Valid Values: |
actionable
| Whether the Chargeback is actionable (i.e. can be responded to via API). |
List all Chargebacks
Use this endpoint to list all Chargebacks under your portfolio with pagination options.
Click here to see API code examples for listing all open Chargebacks
URL
CODE
GET https://api.payrix.com/chargebacks
Header
CODE
Content-Type:application/json
APIKEY:{{private_api_key}}
Example Response
JSON
{
"response": {
"data": [
{
"id": "t1_chb_5fea5e49bd2f7a3ba06df72",
"created": "2020-12-28 17:38:01.7793",
"modified": "2020-12-28 17:38:01.7935",
"creator": "000000000000001",
"modifier": "000000000000001",
"merchant": "t1_mer_5f875e548f62ed646775219",
"txn": "t1_txn_5fe3d62cbec10cdb32b95be",
"description": "",
"total": 1,
"representedTotal": null,
"cycle": "first",
"currency": "USD",
"ref": "160919504560649",
"reason": "Allocation Flow - Fraud - Card Absent Environment",
"reasonCode": "10.4",
"issued": 20201226,
"received": 20201227,
"reply": 20210127,
"bankRef": "160919504560649",
"ChargebackRef": "04560649",
"status": "closed",
"inactive": 0,
"frozen": 0,
"lastStatusChange": "t1_chs_5fea5e49be9210af1d606f7",
"actionable": 1,
"paymentMethod": null,
"shadow": 0
}
],
"details": {
"requestId": 1,
"totals": [],
"page": {
"current": 1,
"last": 1,
"hasMore": false
}
},
"errors": []
}
}
Retrieve a Chargeback by its ID
Use this endpoint to get information about a specific Chargeback within your portfolio using its unique Chargeback ID.
Click here to see API code examples for listing all open Chargebacks
URL
CODE
GET https://api.payrix.com/chargebacks/{id}
Header
CODE
Content-Type:application/json
APIKEY:{{private_api_key}}
Example Response
JSON
{
"response": {
"data": [
{
"id": "t1_chb_5fea5e49bd2f7a3ba06df72",
"created": "2020-12-28 17:38:01.7793",
"modified": "2020-12-28 17:38:01.7935",
"creator": "000000000000001",
"modifier": "000000000000001",
"merchant": "t1_mer_5f875e548f62ed646775219",
"txn": "t1_txn_5fe3d62cbec10cdb32b95be",
"description": "",
"total": 1,
"representedTotal": null,
"cycle": "first",
"currency": "USD",
"ref": "160919504560649",
"reason": "Allocation Flow - Fraud - Card Absent Environment",
"reasonCode": "10.4",
"issued": 20201226,
"received": 20201227,
"reply": 20210127,
"bankRef": "160919504560649",
"ChargebackRef": "04560649",
"status": "closed",
"inactive": 0,
"frozen": 0,
"lastStatusChange": "t1_chs_5fea5e49be9210af1d606f7",
"actionable": 1,
"paymentMethod": null,
"shadow": 0
}
],
"details": {
"requestId": 1,
"totals": [],
"page": {
"current": 1,
"last": 1,
"hasMore": false
}
},
"errors": []
}
}
Click here for path parameter descriptions.
Path Parameter | Description |
---|
{id}
| The unique Chargeback ID. Format Example: t1_chb_5fea5e49bd2f7a3ba06df72 |
Chargeback Web Alert Notifications
If you haven’t set Chargeback web alerts to be notified, it is recommended that you first set a webhook alert trigger for the following Chargeback events (Dispute Actions):
Alert Trigger | Description |
---|
Chargeback.Created
| A new Dispute has been created through retrieval. |
Chargeback.Opened
| A First Chargeback has been initiated by a Cardholder’s issuer. |
Chargeback.Won
| A Chargeback was decided by the Issuer in favor of the Merchant. |
Chargeback.Lost
| A Chargeback was decided by the Issuer in favor of the Cardholder. |
Chargeback.Closed
| A final decision has been reached and the Chargeback process has been closed. |
The below response bodies are examples of what different data each Chargeback Web Alert will provide:
Web Alert Responses
Alert Trigger | Response Body |
---|
Chargeback.Created
| Chargeback Created
CODE
{
"response": {
"alert": {
"subject": "You have a new notification on a dispute",
"disputeId": "p1_chb_ID",
"disputeCaseId": "123456789",
"disputeCreated": "10-14-2020",
"disputeCycle": "First",
"disclaimer": false,
"disputeReasonCode": "V1305",
"disputeReason": "Misrepresentation",
"disputeResponseDue": "11-12-2020",
"disputeStatus": "Open",
"paymentLastFour": "5656",
"paymentType": "Visa",
"txnId": "p1_txn_ID",
"txnAmount": "29.99",
"txnCardHolder": "",
"txnCreated": "08-10-2020"
},
"data": [
{
"id": "p1_chb_ID",
"created": "2020-10-14 01:03:06.4441",
"modified": "2020-10-14 01:03:06.4441",
"creator": "000000000000001",
"modifier": "000000000000001",
"merchant": "p1_mer_ID",
"txn": "p1_txn_ID",
"mid": "8888888888888",
"description": "",
"total": 2999,
"representedTotal": null,
"cycle": "first",
"currency": "USD",
"platform": "VCORE",
"ref": "123456789",
"reason": "Misrepresentation",
"reasonCode": "V1305",
"issued": "20201013",
"received": null,
"reply": "20201112",
"bankRef": "99999999999999999999",
"chargebackRef": "123456789",
"status": "open",
"lastStatusChange": null,
"inactive": 0,
"frozen": 0,
"actionable": "0"
}
]
}
}
|
Chargeback.Opened
| Chargeback Opened
CODE
{
"response": {
"alert": {
"subject": "You have a new Dispute",
"disputeId": "p1_chb_ID",
"disputeCaseId": "000000000000",
"disputeCreated": "10-14-2020",
"disputeCycle": "First",
"disclaimer": false,
"disputeReasonCode": "V1305",
"disputeReason": "Misrepresentation",
"disputeResponseDue": "11-12-2020",
"disputeStatus": "Open",
"paymentLastFour": "4242",
"paymentType": "Visa",
"txnId": "p1_txn_ID",
"txnAmount": "29.99",
"txnCardHolder": "",
"txnCreated": "08-10-2020"
},
"data": []
}
}
|
Chargeback.Won
| Chargeback Won
CODE
{
"response": {
"alert": {
"subject": "You have a new notification on a dispute",
"disputeId": "p1_chb_ID",
"disputeCaseId": "123456789",
"disputeCreated": "10-13-2020",
"disputeCycle": "First",
"disclaimer": false,
"disputeReasonCode": "M2713",
"disputeReason": "Invalid chargeback",
"disputeResponseDue": "11-11-2020",
"disputeStatus": "Won",
"paymentLastFour": "1111",
"paymentType": "Master Card",
"txnId": "p1_txn_ID",
"txnAmount": "111.93",
"txnCardHolder": "",
"txnCreated": "09-26-2020"
},
"data": []
}
}
|
Chargeback.Lost
| Chargeback Lost
CODE
{
"response": {
"alert": {
"subject": "You have a new notification on a dispute",
"disputeId": "p1_chb_ID",
"disputeCaseId": "123456789",
"disputeCreated": "10-06-2020",
"disputeCycle": "First",
"disclaimer": false,
"disputeReasonCode": "C08",
"disputeReason": "Cardmember claims to have not received (or only partially received) the goods/services",
"disputeResponseDue": "10-13-2020",
"disputeStatus": "Closed",
"paymentLastFour": "0101",
"paymentType": "Amex",
"txnId": "p1_txn_ID",
"txnAmount": "200.00",
"txnCardHolder": "",
"txnCreated": "08-14-2020"
},
"data": []
}
}
|
Chargeback.Closed
| Chargeback Closed
CODE
{
"response": {
"alert": {
"subject": "You have a new notification on a dispute",
"disputeId": "p1_chb_ID",
"disputeCaseId": "123456789",
"disputeCreated": "10-06-2020",
"disputeCycle": "First",
"disclaimer": false,
"disputeReasonCode": "C08",
"disputeReason": "Cardmember claims to have not received (or only partially received) the goods/services",
"disputeResponseDue": "10-13-2020",
"disputeStatus": "Closed",
"paymentLastFour": "4242",
"paymentType": "Amex",
"txnId": "p1_txn_ID",
"txnAmount": "200.00",
"txnCardHolder": "",
"txnCreated": "08-14-2020"
},
"data": [
{
"id": "p1_chb_ID",
"created": "2020-10-06 17:04:26.7647",
"modified": "2020-10-13 20:38:57.3945",
"creator": "000000000000001",
"modifier": "p1_log_ID",
"merchant": "p1_mer_ID",
"txn": "p1_txn_ID",
"description": "",
"total": 20000,
"representedTotal": null,
"cycle": "first",
"currency": "USD",
"ref": "99999999999999",
"reason": "Cardmember claims to have not received (or only partially received) the goods/services",
"reasonCode": "C08",
"issued": 20201006,
"received": 20201006,
"reply": 20201013,
"bankRef": "00000000000000000000000",
"chargebackRef": "ref-0123",
"status": "closed",
"lastStatusChange": "p1_chs_ID",
"inactive": 0,
"frozen": 0,
"actionable": 1
}
]
}
}
|
By configuring this Web Alert you’ll be provided with updates about the status of the Dispute as well as the Chargeback ID which will be required to respond to a specific Chargeback using the API.