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

PropriedadeDescriçãoTipoTamanhoObrigatório
codeID 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).String50S
messageMensagem
chargebackStatus0 - para “Pre-Chargeback”, 1 - para “Débito de Chargeback” (valor padrão)IntegerN
chargebackDateUTCData da notificação de chargeback pela adquirenteDatetimeS
reasonCodeCódigo do motivo da solicitação de chargebackString100N
disputeReason

Motivo da Disputa:

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

IntegerN
bin6 primeiros dígitos do cartão de créditoString50N
panCampo alternativo ao bin do cartão e que possui esse nome em alguns casos. 6 primeiros dígitos do cartão.String50N
cardBrandIdID da bandeira do cartão de créditoIntegerN
cardBrandDescrição da bandeira do cartão de créditoString50N
disputeValueValor do ChargebackDecimal20,4N
cardOwnerNameNome do Titular do CartãoString200N
shippingStatus

Status de entrega da compra:

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

IntegerN
nsuNúmero de identificação da operação de venda realizadaString200N
tidTransaction ID da venda realizadaString200N
pspNúmero de identificação da disputaString100N

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
}


Did this page help you?