Marcação de Chargeback

A marcação de Chargeback é indispensável para calibrarmos a assertividade da nossa análise de risco.

Marcação de Chargeback

Exemplo de Request

POST {ENDPOINT}/v1/chargeback

REQUEST HEADER
Content-Type: application/json
Authorization: Bearer {TOKEN}
X-Api-Version: v2

REQUEST BODY (ver descrição dos campos)
{
"code": "{Codigo do pedido}",
"message": "Mensagem de exemplo",
"chargebackStatus": 1,
"chargebackDateUTC": "{Data da notificação de chargeback pela adquirente}",
"reasonCode": "{Código do motivo da solicitação de chargeback}",
"disputeReason": 1,
"bin": "123456",
"pan": "123456",
"cardBrandId": "3",
"cardBrand": "VISA",
"disputeValue": 100.00,
"cardOwnerName": "{Nome do Titular do Cartão de Crédito}",
"shippingStatus": 0,
"nsu": "{Número de identificação da operação de venda realizada}",
"tid": "{Transaction ID da venda realizada}",
"psp": "{Número de identificação da disputa}"
}

Exemplo de Response

RESPONSE HEADER

Content-Type: application/json
Request-ID: {"REQUESTID_DA_REQUISIÇÃO"}

RESPONSE BODY
{
"code": "{CODIGO_DO_MEU_PEDIDO}",
"status": "Chargeback done",
"errors": null
}

Tabela de codigos e descricao

Bandeira Cartao de Credito (cardBrandId e cardBrand)

CódigoDescrição
1Diners
2MasterCard
3Visa
4Outros
5American Express
6HiperCard
7Cartão Aura
10Cartão Elo

Descrição de campos do json da Marcação de Chargeback

Propriedade

Descrição

Tipo

Tamanho

Obrigatório

code

ID do pedido (mesmo valor enviado anteriormente na propriedade “transactionId” ou “code” do json de análise de risco do pedido, dependendo do endpoint de API que utilizem para esse envio).

String

50

S

message

Mensagem

chargebackStatus

0 - para “Pre-Chargeback”, 1 - para “Débito de Chargeback” (valor padrão)

Integer

N

chargebackDateUTC

Data da notificação de chargeback pela adquirente

Datetime

S

reasonCode

Código do motivo da solicitação de chargeback

String

100

N

disputeReason

Motivo da Disputa:

0 - para "Desacordo Comercial", 1 - para "Fraude", 2 - para “Erro de Processamento"

Integer

N

bin

6 primeiros dígitos do cartão de crédito

String

50

N

pan

Campo alternativo ao bin do cartão e que possui esse nome em alguns casos. 6 primeiros dígitos do cartão.

String

50

N

cardBrandId

ID da bandeira do cartão de crédito

Integer

N

cardBrand

Descrição da bandeira do cartão de crédito

String

50

N

disputeValue

Valor do Chargeback

Decimal

20,4

N

cardOwnerName

Nome do Titular do Cartão

String

200

N

shippingStatus

Status de entrega da compra:

0 - para "Entregue", 1 - para "Entrega Barrada", 2 - para "Em rota para Devolução"

Integer

N

nsu

Número de identificação da operação de venda realizada

String

200

N

tid

Transaction ID da venda realizada

String

200

N

psp

Número de identificação da disputa

String

100

N


Retornos de Erros da API de Marcacao de Chargeback

Token inválido ou expirado

HTTPCode: 401 Unauthorized

Body: {Vazio}

Requisição sem a propriedade "code"

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "Code: Required field"
  ]
}

Requisição sem a propriedade "chargebackDateUTC"

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "ChargebackDateUTC: Required field"
  ]
}

Valor da propriedade "code" excedeu o limite de caracteres

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "Code: Exceeded maximum size of 50 characters."
  ]
}

Valor da propriedade "message" excedeu o limite de caracteres

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "Message: Exceeded maximum size of 100 characters."
  ]
}

Valor da propriedade "reasonCode" excedeu o limite de caracteres

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "ReasonCode: Exceeded maximum size of 100 characters."
  ]
}

Valor da propriedade "bin" excedeu o limite de caracteres

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "Bin: Exceeded maximum size of 50 characters."
  ]
}

Valor da propriedade "pan" excedeu o limite de caracteres

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "Pan: Exceeded maximum size of 50 characters."
  ]
}

Valor da propriedade "cardBrand" excedeu o limite de caracteres

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "cardBrand: Exceeded maximum size of 200 characters."
  ]
}

Valor da propriedade "disputeValue" excedeu o limite de caracteres

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "DisputeValue: Must be greater than or equal to 0."
  ]
}

Valor da propriedade "nsu" excedeu o limite de caracteres

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "NSU: Exceeded maximum size of 200 characters."
  ]
}

Valor da propriedade "tid" excedeu o limite de caracteres

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "TID: Exceeded maximum size of 200 characters."
  ]
}

Valor da propriedade “psp” excedeu o limite de caracteres

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "PSP: Exceeded maximum size of 200 characters."
  ]
}

Valor da propriedade “shippingStatus” invalido

HTTPCode: 400 Bad Request

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "ShippingStatus: Not a valid ShippingStatus."
  ]
}

Status do pedido na ClearSale não permite marcação de chargeback no momento

HTTPCode: 422 Unprocessable Entity

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "Não é possível marcar o chargeback, verifique o status do mesmo."
  ]
}

Requisição com body request vazio

HTTPCode: 500 Internal Server Error

Body:
{Vazio}

Erro com causa não mapeada (sera necessário análise da ClearSale

HTTPCode: 500 Internal Server Error

Body:
{
  "code": "{Codigo do pedido}",
  "status": "Fail",
  "errors": [
    "Ocorreu um erro ao tentar marcar o Chargeback."
  ]
}

Marcação de Chargeback feita em duplicidade para um mesmo pedido em menos de 1 minuto de diferença

HTTPCode: 202 Accepted

Body:
{
"code": "{Codigo do pedido}",
"status": "Chargeback is being processed.",
"errors": null
}