Skip to main content
POST
/
chargebacks
Create a chargeback
curl --request POST \
  --url https://developersandbox-api.flutterwave.com/chargebacks \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "charge_id": "chg_eahdhfThdHsgaSra",
  "amount": 12.34,
  "type": "international",
  "expiry": 72,
  "stage": "new",
  "status": "pending",
  "uploaded_proof": "https://example.com/proofs/proof_123.pdf",
  "comment": "Customer claims the charge was unauthorized.",
  "provider": "Visa",
  "arn": "1243453453434234534443423",
  "initiator": "customer"
}
'
{
  "status": "success",
  "message": "<string>",
  "meta": {},
  "data": {
    "id": 1,
    "charge_id": "chg_eahdhfThdHsgaSra",
    "amount": 12.34,
    "meta": {},
    "stage": "new",
    "status": "new",
    "type": "local",
    "due_datetime": "2025-05-30T23:59:59Z",
    "created_datetime": "2025-06-01T23:59:59Z",
    "updated_datetime": "2025-06-01T23:59:59Z",
    "settlement_id": "SETTLEMENT-XYZ-12345",
    "uploaded_proof": "https://example.com/proofs/chargeback-ABC-67890.pdf",
    "comment": "Customer claims service not rendered. Attached signed delivery confirmation.",
    "provider": "Visa",
    "arn": "70010000000000000000001",
    "initiator": "Cardholder"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

X-Trace-Id
string

A unique identifier to track this operation. It must be between 12 and 255 characters in length.

Required string length: 12 - 255
X-Idempotency-Key
string

A unique identifier to prevent duplicate requests. It must be between 12 and 255 characters in length.

Required string length: 12 - 255

Body

application/json

A chargeback input object

charge_id
string
required

ID of the charge tied to this chargeback

Example:

"chg_eahdhfThdHsgaSra"

amount
number<decimal>
required

Amount to be charged back

Required range: x >= 0.01
Example:

12.34

type
enum<string>
required

The type categorizes the chargeback based on whether it originates from a transaction within the same country (local) or across different countries (international).

Available options:
local,
international
Example:

"international"

expiry
integer<int64>
required

Duration of chargeback in hours used in calculating due_datetime

Example:

72

stage
enum<string>

The stage describes the current phase of a chargeback dispute.

Available options:
new,
second,
pre-arbitration,
arbitration
Example:

"new"

status
enum<string>

The status indicates the current state or progress of the chargeback, showing whether it's awaiting action or has been formally started.

Available options:
pending,
initiated
Example:

"pending"

uploaded_proof
string

Link to proof against chargeback

Example:

"https://example.com/proofs/proof_123.pdf"

comment
string

Additional comments for the chargeback

Example:

"Customer claims the charge was unauthorized."

provider
string

Provider for the chargeback

Example:

"Visa"

arn
string

Acquirer reference number for transaction

Example:

"1243453453434234534443423"

initiator
string

Initiator of the chargeback

Example:

"customer"

Response

OK

status
enum<string>
Available options:
success,
failed
message
string
meta
object
data
object

A chargeback object