Skip to content

↑↓ navigate ↵ open Ctrl↵ new tab esc close

Attaches an evidence record to a transaction already sent to Rapid.

POST https://api.rapidchargeback.com/api/v1/evidence

Basic Auth with client_id:client_secret. See Authentication.

Authorization: Basic base64(client_id:client_secret)
Content-Type: application/json
FieldTypeDescriptionRequired
transaction_idstring (UUID)Transaction ID at Rapid, returned when you created itYes, or transaction_ref
transaction_refobjectAlternative to transaction_id: points to the transaction by your identifier. See belowYes, or transaction_id
typestring (enum)Nature of the recorded fact. Accepted values belowYes
payloadobjectThe data about the fact. Free format, 32 KB capYes
captured_atstring (ISO 8601 with offset)When the fact happened in your system, not when you send itYes

Send one of the two: transaction_id or transaction_ref. If both are missing, the response is 422.

FieldTypeDescriptionRequired
external_sourcestringThe same source you used when creating the transaction (e.g. "shopify")Yes
external_idstringThe same ID from your system you used when creating the transactionYes
ValueWhen to use
terms_acceptanceCustomer accepted terms, policy or contract
access_logCustomer accessed the product or the logged-in area
delivery_confirmationDelivery confirmed
usage_logActual use of the product or service
communicationExchange with the customer (email, chat, ticket)
otherAny fact that does not fit the previous ones

Free format: you choose the keys. The only rule is the 32 KB cap on the serialized JSON: evidence is a record, not a file.

Suggestions by type, not required:

// terms_acceptance
{ "accepted_at": "2026-04-01T15:29:40Z", "terms_version": "v3.2", "ip": "203.0.113.10" }
// access_log
{ "first_access_at": "2026-04-01T16:02:11Z", "sessions": 3 }
// delivery_confirmation
{ "carrier": "correios", "tracking": "AA123456789BR", "delivered_at": "2026-04-03T11:20:00Z" }
RuleResponse
Neither transaction_id nor transaction_ref422 VALIDATION_ERROR: transaction_id or transaction_ref is required
type outside the enum422 VALIDATION_ERROR with the list of accepted values
captured_at without a time zone offset422 VALIDATION_ERROR: Invalid datetime
Serialized payload over 32 KB422 VALIDATION_ERROR: payload exceeds 32KB: evidence is a record, not a file
Transaction does not exist, or is not from your company404 TRANSACTION_NOT_FOUND
Missing or invalid credential401 UNAUTHORIZED

The transaction is always resolved within your company. A transaction ID from another company returns 404, never 403: we do not confirm the existence of someone else’s data.

Terminal window
curl -X POST https://api.rapidchargeback.com/api/v1/evidence \
-H "Authorization: Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ=" \
-H "Content-Type: application/json" \
-d '{
"transaction_id": "00000000-0000-0000-0000-000000000042",
"type": "terms_acceptance",
"payload": {
"accepted_at": "2026-04-01T15:29:40Z",
"terms_version": "v3.2",
"ip": "203.0.113.10"
},
"captured_at": "2026-04-01T15:29:41Z"
}'

By your own identifier, without storing Rapid’s UUID:

Terminal window
curl -X POST https://api.rapidchargeback.com/api/v1/evidence \
-H "Authorization: Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ=" \
-H "Content-Type: application/json" \
-d '{
"transaction_ref": { "external_source": "shopify", "external_id": "TXN-2026-001" },
"type": "access_log",
"payload": { "first_access_at": "2026-04-01T16:02:11Z", "sessions": 3 },
"captured_at": "2026-04-01T16:02:12Z"
}'
{
"data": {
"id": "00000000-0000-0000-0000-0000000000e1",
"transaction_id": "00000000-0000-0000-0000-000000000042",
"type": "terms_acceptance"
}
}

The returned id is the evidence’s. Store it only if you are going to reference it; to list, the key is the transaction.

Error: missing transaction reference (422)

Section titled “Error: missing transaction reference (422)”
{
"error": {
"code": "VALIDATION_ERROR",
"message": "transaction_id or transaction_ref is required"
}
}
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid enum value. Expected 'terms_acceptance' | 'access_log' | 'delivery_confirmation' | 'usage_log' | 'communication' | 'other', received 'nao_existe'"
}
}
{
"error": {
"code": "TRANSACTION_NOT_FOUND",
"message": "Transaction not found"
}
}
{
"error": {
"code": "VALIDATION_ERROR",
"message": "payload exceeds 32KB: evidence is a record, not a file"
}
}