Gestão de Chargebacks

Em casos que haja alguma contestação de alguma cobrança via cartão de crédito, seja ela avulsa ou recorrente, a Celcoin disponibiliza todo o suporte para que você possa gerir esse fluxo, desde o recebimento que alguma cobrança teve contestação até a resolução da mesma.. Abaixo iremos explicar como se integrar com esse módulo do BaaS.

Caso de uso:

Como Fintech quero antecipar meu recebível de cartão de crédito para melhorar meu fluxo de caixa.

Nesse artigo você irá aprender sobre:

  • Cadastrar webhook para receber eventos de chargebacks
  • Enviar documentação de defesa dos chargebacks
  • Desistir da disputa dos chargebacks
  • Listar Chargebacks

Pré requisitos para implementação:

  • Possuir uma chave api da Celcoin, para mais informações acessar esse link
  • Ter familiaridade com apis Rest usando o protocolo OAuth 2.0.
  • Ter o produto/solução de sub Celcoin contratado, caso queira usar a funcionalidade em ambiente produtivo, por favor entre em contato com a nossa equipe comercial através do e-mail [email protected]. Para dúvidas técnicas, basta entrar em contato com o suporte através do link.

Cadastro de Webhooks

Para receber informações das contestações realizadas pelos clientes, é necessário cadastrar um webhook para receber as atualizações referentes ao chargeback.

Para cadastrar um webhook, é necessário realizar uma chamada na api Cadastrar Webhook Chargeback utilizando o método PUT, onde precisa ser preenchido algumas informações, como URL e o evento relacionado. Os dados necessários estão no quadro "Parâmetros do Body"

Modelo de requisição:

curl --location --request PUT 'https://sandbox.openfinance.celcoin.dev/baas/v1/cash/webhooks' \
--header 'accept: application/json' \
--header 'Authorization: Bearer acess_token' \
--header 'Content-Type: application/json' \
--data-raw '{
    "url": "https://website.com.br/webhook-celcoin-sub",
    "events": [
        "chargeback.update"
    ]
}
'

Parâmetros do Body:

CampoDescriçãoTipo
urlURL do Webhook.String (255)
eventsArray de eventos a serem ativados. Valores possíveis:

- chargeback.update
Será enviado quando uma abertura de disputa for criada no sistema. Vai conter todos os dados da entidade Chargeback, além de conter alguns dados da entidade Transaction e PaymentBill.
Array String

Modelo de retorno: necessário validar retorno de sucesso

{
    "type": true,
    "confirmHash": "19b3e0a42152d126cbe1512022714a8b",
    "events": [
        "chargeback.update"
    ]
}

Note que essa api é síncrona, sendo assim, a Celcoin irá retornar para você o resultado final da solicitação de cadastro da empresa.

Tabela descritiva dos campos retornados

CampoDescriçãoTipo
typeRetorna se simulação foi realizada com sucesso. Valores possíveis: True ou FalseBool
confirmHashHash de confirmação de segurança do webhook.String (255)
eventsArray de eventos que foram ativados.Array String

Enviar Documentação de Defesa do Chargeback

Caso você tenha uma contestação em aberto, você pode enviar os documentos de defesa do chargeback.. Para isso, é necessário realizar uma chamada na api Enviar Documentação utilizando o método PUT.

Modelo de request:

curl --location --request PUT 'https://sandbox.openfinance.celcoin.dev/baas/v1/cash/chargebacks/{chargebackGalaxPayId}
--header 'accept: application/json' \
--header 'Authorization: Bearer acess_token' \
--header 'Content-Type: application/json' \
--data-raw '{
    {
    "files": [
        "File 01 encoded in base64",
        "File 02 encoded in base64"
    ]
}
}
'

Modelo de retorno:

{
    "type": true
}

Tabela descritiva dos campos

CampoDescriçãoTipo
chargebackGalaxPayIdIdentificador do chargeback
filesDocumentos para contestação de disputa codificados em base64
typeRetorna se simulação foi realizada com sucesso. Valores possíveis: True ou FalseBool

Desistir da Disputa dos Chargeback

Caso queira desistir da disputa do chargeback , você deve realizar uma chamada na API Desistir da Disputa do Chargeback utilizando o método PUT

Modelo de requisição:

curl --location --request PUT 'https://sandbox.openfinance.celcoin.dev/baas/v1/cash/chargebacks/lose/{chargebackGalaxPayId}' \

Parâmetros do Body:

CampoDescriçãoTipo
chargebackGalaxPayIdIdentificador do chargeback

Modelo de retorno:

{
    "type": true
}

Tabela descritiva dos campos retornados

CampoDescriçãoTipo
typeRetorna se simulação foi realizada com sucesso. Valores possíveis: True ou FalseBool

Listar Chargebacks

Caso necessite validar o status dos chargebacks, você deve realizar uma chamada na API Listar Chargebacks utilizando o método GET

Modelo de requisição:

curl --location --request GET 'https://sandbox.openfinance.celcoin.dev/baas/v1/cash/chargebacks' \

Parâmetros do Body:

CampoDescriçãoTipo
limitQuantidade de dados retornadosint
startAtA partir de que posição da query irá pegar os dadosint
statusStatus do chargeback. Separe cada valor por vírgula. Valores possíveis:

-awaitingDocumentation: A disputa de chargeback está aguardando a documentação ser enviada.
-lostDispute : A disputa de chargeback foi perdida.
-winsDispute: A disputa de chargeback foi ganha.
-inAnalysis : A disputa de chargeback está em análise pelo Galax Pay.
-canceledDispute: A disputa de chargeback foi cancelada.
string
processNúmero do processo do chargeback. Separe cada valor por vírgula.string
chargeGalaxPayIdsCharge.galaxPayId. Id da cobrança avulsa no Galax Pay. Separe cada id por vírgula.string
chargeMyIdsId da cobrança avulsa no seu sistema.
Separe cada id por vírgula.
string
transactionGalaxPayIds Id da transação no Galax Pay. Separe cada id por vírgula.string
createdAtFromData de criação inicial do Chargebackdate
createdAtToData de criação final do Chargebackdate
expiryDateFromdata inicial até o limite de envio de documentação.date
expiryDateTodata final até o limite de envio de documentação.date
sendDocumentFromData inicial que o documento foi enviado.date
sendDocumentToData final que o documento foi enviado.date

📘

Note que todos os dados podem ser filtrados

📘

Você pode filtrar todos os dados ou somente o campo que desejar.

Modelo de retorno:

{
    "totalQtdFoundInPage": 1,
    "Chargebacks": [
        {
            "galaxPayId": 47,
            "createdAt": "2023-11-21 15:33:55",
            "expire": "2023-11-25 00:00:00",
            "process": "4913850291284",
            "value": 300,
            "status": "inAnalysis",
            "description": "chargeback description",
            "DocumentsChargeback": {
                "createdAt": "2023-11-22 15:33:55"
            },
            "Transaction": {
                "galaxPayId": 475,
                "myId": "TRANSACTION-MYID-475"
            },
            "PaymentBill": {
                "galaxPayId": 216,
                "myId": "CHARGE-MYID-216"
            }
        }
    ]
}

Tabela descritiva dos campos retornados

CampoDescriçãoTipo
totalQtdFoundInPageQuantidade total de registros do retorno da busca na página atual.int
chargebacks.galaxPayIdIdentificador da antecipaçãoint (11)
chargebacks.createdAtData de criação.date
chargebacks.expiredata até o limite de envio de documentação.date
chargebacks.processNúmero do processo do chargeback. Separe cada valor por vírgula.string (37)
chargebacks.valueValor do chargeback.int
chargebacks.statusStatus do chargeback. Separe cada valor por vírgula. Valores possíveis:

-awaitingDocumentation: A disputa de chargeback está aguardando a documentação ser enviada.
-lostDispute : A disputa de chargeback foi perdida.
-winsDispute: A disputa de chargeback foi ganha.
-inAnalysis : A disputa de chargeback está em análise pelo Galax Pay.
-canceledDispute: A disputa de chargeback foi cancelada.
String (255)
chargebacks.descriptionDescrição do chargeback.String (255)
chargebacks.DocumentsChargeback.createdAtObjeto da documentação de chargeback. Data da Criaçãodate
chargebacks.transaction.galaxPayIdIdentificador da Transaçãoint (11
chargebacks.transaction.myId Identificador da transação no seu sistemaString (255)
chargeback.paymentBill.galaxPayIdIdentificador da cobrança avulsaint (11)
chargeback.paymentBill.myIdIdentificador da transação no seu sistemaString (255)