Required Fields for Chargeback Guarantee

This page lists the mandatory operational fields that must be sent on Create Evaluation (POST /v1/antifraud/evaluations) when the merchant is covered by chargeback guarantee, plus the chargeback notification that must be sent after a dispute is reported.

These requirements complement the base OpenAPI contract. Incomplete or empty objects (for example address: {}) may cause validation errors or exclude the transaction from guarantee eligibility.

See also: Antifraud overview · Item types index · Send Notifications


1. Create Evaluation — root objects

ObjectRequiredNotes
typeYesMust be Ecommerce.
buyerYesBuyer identity, contact, and full address.
deviceYesSession and IP (IPv4 or IPv6).
storeYesMerchant context and correlation IDs.
itemsYesAt least one line item.
paymentsYesPayment instruments used on the order.
transactionYesBusiness transaction identifiers.
shippingYes when goods/services are shipped or deliveredFull shipping address required for guarantee.
callback_urlRecommendedPublic HTTPS endpoint for async evaluation status updates.

2. buyer (required)

FieldRequiredNotes
emailYesBuyer email.
full_name or (first_name + last_name)YesProvide full name or first and last name.
phoneYesSee phone fields below.
documentYesSee document fields below.
addressYesFull address — see address fields below. Do not send an empty object.

buyer.phone

FieldRequiredNotes
area_codeYesArea / DDD code.
typeYesPhone type (for example Mobile).
numberYesPhone number.
country_codeRecommendedFor example +55.

buyer.document

FieldRequiredNotes
typeYesDocument type (for example CPF, DNI).
numberYesDocument number.
nationalityRecommendedTwo-letter ISO 3166 country code when available.

buyer.address (full address)

FieldRequiredNotes
streetYesStreet name.
numberYesStreet number.
neighborhoodYesNeighborhood / district.
cityYesCity name or code.
stateYesState name or code.
country_codeYesTwo-letter ISO 3166 country code.
zip_codeYesPostal / ZIP code.
complementWhen availableApartment, floor, landmark, etc.

3. device (required)

FieldRequiredNotes
ip_addressYesBuyer device IP (IPv4 or IPv6).
session_idYesSession / fingerprint session identifier.

For web checkouts, also integrate device fingerprint per JavaScript Integration and send the token in device as defined in the current OpenAPI.


4. store (required)

FieldRequiredNotes
codeYesStore / merchant code configured with Koin.
reference_idYesMerchant order identifier. Must stay stable between pre-evaluation and evaluation when both are used.
categoryRecommendedMCC (merchant category code), when available.

5. items[] (required)

Each element must include the shared Item base fields:

FieldRequiredNotes
typeYesItem discriminator (for example Generic, Flight, Bus).
idYesLine / SKU identifier in your catalog.
nameYesProduct or service name.
quantityYesQuantity sold.
category.idYesCategory identifier.
category.nameYesCategory name.
price.currency_codeYesISO 4217 currency code.
price.valueYesUnit / line price value.

Additional fields may be required depending on items[].type. See the item types index.


6. payments[] — CreditCard (required for card flows)

FieldRequiredNotes
typeYesCreditCard.
amount.currency_codeYesISO 4217 currency code.
amount.valueYesPayment amount.
details.binYesCard BIN (first digits).
details.expiration_monthYesCard expiration month.
details.expiration_yearYesCard expiration year.
payerYesPayer identity — see below.

Prefer tokenized card data (secure_token) when available. Do not send full PAN or CVV in clear text unless the published contract for your API version explicitly requires it.

payments[].payer

FieldRequiredNotes
full_name or (first_name + last_name)YesPayer name.
document.typeYesDocument type.
document.numberYesDocument number.
document.nationalityYesTwo-letter ISO 3166 country code.

7. transaction (required)

FieldRequiredNotes
reference_idYesUnique business transaction identifier (max length / pattern per OpenAPI). Align with store.reference_id as defined by your integration.

8. shipping (required when delivery applies)

FieldRequiredNotes
addressYesFull shipping address — same completeness rule as buyer.address.

shipping.address

FieldRequiredNotes
streetYesStreet name.
numberYesStreet number.
neighborhoodYesNeighborhood / district.
cityYesCity name or code.
stateYesState name or code.
country_codeYesTwo-letter ISO 3166 country code.
zip_codeYesPostal / ZIP code.
complementWhen availableAdditional address details.

9. Example — Create Evaluation (minimum for chargeback guarantee)

Illustrative payload. Replace values with real data and validate against the current OpenAPI.

{
  "type": "Ecommerce",
  "buyer": {
    "first_name": "Maria",
    "last_name": "Silva",
    "email": "[email protected]",
    "phone": {
      "country_code": "+55",
      "area_code": "11",
      "number": "998887766",
      "type": "Mobile"
    },
    "document": {
      "type": "CPF",
      "number": "12345678901",
      "nationality": "BR"
    },
    "address": {
      "street": "Av Paulista",
      "number": "1500",
      "complement": "Apt 42",
      "neighborhood": "Bela Vista",
      "city": "Sao Paulo",
      "state": "SP",
      "country_code": "BR",
      "zip_code": "01310100"
    }
  },
  "device": {
    "ip_address": "192.0.2.10",
    "session_id": "sess-order-001"
  },
  "store": {
    "code": "SBXSTORE",
    "reference_id": "ORDER-2026-0001",
    "category": "5411"
  },
  "items": [
    {
      "type": "Generic",
      "id": "SKU-998877",
      "name": "Wireless headphones",
      "quantity": 1,
      "category": {
        "id": "CAT-001",
        "name": "Electronics"
      },
      "price": {
        "currency_code": "BRL",
        "value": 299.9
      }
    }
  ],
  "payments": [
    {
      "type": "CreditCard",
      "amount": {
        "currency_code": "BRL",
        "value": 299.9
      },
      "details": {
        "bin": "411111",
        "expiration_month": "12",
        "expiration_year": "2030"
      },
      "payer": {
        "first_name": "Maria",
        "last_name": "Silva",
        "document": {
          "type": "CPF",
          "number": "12345678901",
          "nationality": "BR"
        }
      }
    }
  ],
  "shipping": {
    "address": {
      "street": "Av Paulista",
      "number": "1500",
      "complement": "Apt 42",
      "neighborhood": "Bela Vista",
      "city": "Sao Paulo",
      "state": "SP",
      "country_code": "BR",
      "zip_code": "01310100"
    }
  },
  "transaction": {
    "reference_id": "ORDER-2026-0001"
  },
  "callback_url": "https://www.yourdomain.com/webhooks/antifraud-evaluation"
}

10. Chargeback notification (mandatory after dispute)

When a chargeback (or equivalent dispute) is reported for an already evaluated transaction, the merchant must notify antifraud using Send Notifications.

ItemValue
Method / URLPATCH https://api-sandbox.koin.com.br/v1/antifraud/notifications/{id}
PurposeInform antifraud that a chargeback occurred (internal, bank, or scheme entity).
Distinct fromcallback_url — callbacks are Koin → merchant; this PATCH is merchant → Koin.

Path and query parameters

ParameterLocationRequiredDescription
idpathYesevaluation_id returned by Create Evaluation or store.reference_id sent on evaluation.
fieldqueryNoLookup key. Default: EVALUATION_ID. Use REFERENCE_ID when {id} is the merchant reference_id. Allowed: EVALUATION_ID, REFERENCE_ID.

Chargeback body (type: CHARGEBACK)

FieldRequiredNotes
typeYesMust be CHARGEBACK.
notification_dateYesNotification timestamp (ISO 8601).
sub_typeRecommendedFRAUD, NON_FRAUD, or PENDING.
messageOptionalHuman-readable description.
detailsOptionalKey/value pairs with extra dispute metadata.

Example — chargeback by evaluation_id

curl -X PATCH 'https://api-sandbox.koin.com.br/v1/antifraud/notifications/9dd3f765-a51a-49d8-b6af-a51d5a0b3f7f?field=EVALUATION_ID' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --data-binary @- <<'EOF'
{
  "type": "CHARGEBACK",
  "sub_type": "FRAUD",
  "notification_date": "2026-07-21T14:10:44.307Z",
  "message": "Chargeback received from acquirer",
  "details": {
    "reason_code": "4837",
    "case_id": "CB-2026-0001"
  }
}
EOF

Example — chargeback by reference_id

curl -X PATCH 'https://api-sandbox.koin.com.br/v1/antifraud/notifications/ORDER-2026-0001?field=REFERENCE_ID' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --data-binary @- <<'EOF'
{
  "type": "CHARGEBACK",
  "sub_type": "PENDING",
  "notification_date": "2026-07-21T14:10:44.307Z",
  "message": "Chargeback under review"
}
EOF

Operational rules

  • Send the chargeback notification whenever the acquirer, issuer, or merchant operations report a chargeback on an evaluated transaction, within the agreed operational window.
  • Implement retry with backoff for transient failures (5xx, timeout) without duplicating business side effects.
  • Keep audit logs (type, sub_type, evaluation_id / reference_id, timestamp, HTTP status).
  • Other notification types (RFI, STATUS, INFO) remain available on the same endpoint; for chargeback guarantee coverage, CHARGEBACK is the mandatory dispute signal.

11. Related references


Field names and enums must always be validated against the current OpenAPI. The published API contract prevails if there is any divergence.