URLs de callback

Callback do ControlPay para uma URL usuário após transações e impressões.

🚧

Antes de usar as APIs...

Certifique-se de ter verificado as secções de APIs e Chave de Integração, além de ter lido as nossas Informações preliminares.

Callback

Esta funcionalidade, também conhecido como Webhook, permite que o sistema ou aplicação que gerou uma transação no ControlPay receba uma notificação assim que ela for finalizada, independentemente do resultado: autorizada, negada ou cancelada, o sistema receberá uma notificação de callback.

As informações presentes no callback permitem identificar a transação. Após acatar notificação, o sistema deverá consultar a transação no ControlPay através das APIs listadas na seção "Transacional".

📘

Observação

O ControlPay concatena a URL cadastrada com o conteúdo necessário para o envio, adicionando o caractere '?' para identificar o início da API. Porém, caso seja cadastrada a URL com o caractere '?', o ControlPay o identificará e concatenará a partir do caractere '&'.

Exemplo: seusite.com.br/seuservico?cpfCnpj=01234567890&intencaoVendaId=1234&intencaoVendaReferencia=abcd&pedidoId=9876&pedidoReferencia=xyz

Resposta ao callback pela URL cadastrada

Quando o callback for realizado, o ControlPay analisa o código de status enviado pelo sistema cadastrado. Caso o sistema retorne um status code diferente do range de 200 (ex: 200, 201, etc.), o ControlPay irá realizar nova tentativa do callback após 2 minutos. Se na próxima tentativa também retornar status code diferente do range 200, a próxima retentativa ocorrerá após 4 minutos, e assim consecutivamente depois de 8, 16 e 32 minutos.

Obs.: O sistema deve retornar status code com range 200 apenas para callback recebido com sucesso. Se o status code com range de 200 for retornado, não será mais enviado callback.


Tipos de callback

IDNomeSignificado
1UrlRetornoURL de callback para vendas
2UrlConsultaURL de callback para consultas de vendas
3UrlRetornoImpressaoURL de callback para impressões

Gerenciamento de URL de callback

As Automações Comerciais podem gerenciar as URLs de callback, através dos endpoints abaixo.

📘

Importante!

O gerenciamento é feito com base na chave de integração usada. Ou seja: o usuário da chave de integração só pode criar callbacks para si mesmo.


POST Callback/Insert

Esta API é usada para a criação de callbacks. A URL de callback será criada para o usuário dono da chave de integração utilizada na chamada da API. Ou seja: esta será a URL de callback para todos os terminais daquele CPF/CNPJ.

⚠️

Atenção!

Esta API realiza apenas a inserção de uma URLs de callback. Para modificação de uma já existente, utilize a API de Update.

📘

{{Url}}/Callback/Insert/?key={{Key}}

Variáveis:

{{Url}}/Callback/Insert/?key={{Key}}

V: endereço do ambiente atual. "}}>Url: endereço do ambiente a: chave de acesso.

{ 
  “callbackTipo”: 1,
  “urlCallback”: “https://suaUrlDeCallback.com.br/”
}

• callbackTipo: [int] tipo do callback desejado (venda, consulta, impressão);
• urlCallback: [string] URL de callback a ser cadastrada. Este valor pode ter até 500 caracteres;

Exemplo: Callback/Insert

{ 
  “callbackTipo”: 1,
  “urlCallback”: “https://suaUrlDeCallback.com.br/”
}
{
    "data": "27/02/2026 11:50:15.7139",
    "callback": {
        "callbackTipo": {
            "id": 1,
            "nome": "UrlRetorno"
        },
        "urlCallback": "https://suaUrlDeCallback.com.br/",
        "pessoa": {
            "id": 1234,
            "nome": "NomeDaPessoa",
            "sobrenomeNomeFantasia": "Loja da Esquina"
        }
    }
}

GET Callback/GetRegistered

Esta API é usada para recuperar a URL de callback cadastrada anteriormente.

⚠️

Atenção!

Esta API realiza a leitura das URLs de callback previamente criadas. Para a criação de uma nova URL, utilize a API de Insert.

📘

{{Url}}/Callback/GetRegistered/?key={{Key}}&callbackTipo=1

Variáveis:

{{Url}}/Callback/GetRegistered/?key={{Key}}&callbackTipo=1

V: endereço do ambiente atual. "}}>Url: endereço do ambiente a: chave de acesso.

🟢

Observação

Esta API é apenas um GET, sem body.

Ela é uma API sem body que irá pesquisar a URL relacionada à chave de integração da requisição.

Além disso, ela tem um "param" callbackTipo relacionado aos tipos de callback. Como o callback mais comum é o de venda, aqui usamos o tipo "1".

Exemplo: Callback/GetRegistered

{
    "data": "27/02/2026 11:59:20.5408",
    "callback": {
        "callbackTipo": {
            "id": 1,
            "nome": "UrlRetorno"
        },
        "urlCallback": "https://suaUrlDeCallback.com.br/",
        "pessoa": {
            "id": 1234,
            "nome": "NomeDaPessoa",
            "sobrenomeNomeFantasia": "Loja da Esquina"
        }
    }
}

POST Callback/Update

Esta API é usada para modificar uma URL previamente cadastrada.

⚠️

Atenção!

Esta API realiza apenas modificação de URLs de callback previamente criadas. Para a criação de uma nova URL, utilize a API de Insert.

📘

{{Url}}/Callback/Update/?key={{Key}}

Variáveis:

{{Url}}/Callback/Update/?key={{Key}}

V: endereço do ambiente atual. "}}>Url: endereço do ambiente a: chave de acesso.

{ 
  “callbackTipo”: 1,
  “urlCallback”: “https://suaUrlDeCallback.com.br/”
}

• callbackTipo: [int] tipo do callback desejado (venda, consulta, impressão);
• urlCallback: [string] URL de callback a ser modificada. Este valor pode ter até 500 caracteres;

Exemplo: Callback/Update

{ 
  “callbackTipo”: 1,
  “urlCallback”: “https://suaUrlDeCallbackNova.com.br/”
}
{
    "data": "27/02/2026 12:00:17.1285",
    "callback": {
        "callbackTipo": {
            "id": 1,
            "nome": "UrlRetorno"
        },
        "urlCallback": "https://suaUrlDeCallbackNova.com.br/",
        "pessoa": {
            "id": 1234,
            "nome": "NomeDaPessoa",
            "sobrenomeNomeFantasia": "Loja da Esquina"
        }
    }
}

DELETE Callback/Delete

Esta API é usada para deletar callbacks previamente cadastradas.

📘

{{Url}}/Callback/Delete/?key={{Key}}

Variáveis:

{{Url}}/Callback/Delete/?key={{Key}}

V: endereço do ambiente atual. "}}>Url: endereço do ambiente a: chave de acesso.

{ 
  “callbackTipo”: 1
}

• callbackTipo: [int] tipo do callback desejado (venda, consulta, impressão);

Atenção!

Caso não seja enviado um body para essa requisição, o ControlPay assumirá como uma requisição para o tipo UrlRetorno.

Exemplo: Callback/Delete

{ 
  “callbackTipo”: 1
}
{
    "data": "27/02/2026 12:00:37.4872",
    "callback": {
        "callbackTipo": {
            "id": 1,
            "nome": "UrlRetorno"
        },
        "urlCallback": "https://www.postb.in/1770215647337-6262078641446",
        "pessoa": {
            "id": 1234,
            "nome": "NomeDaPessoa",
            "sobrenomeNomeFantasia": "Loja da Esquina"
        }
    }
}

O ControlPay retornará as informações da chave que foi deletada, apenas para conferência.


O callback em funcionamento

Após o cadastro do callback, quando houver uma venda, ele funcionará de acordo com o comportamento abaixo, sendo enviado pelo ControlPay no endereço descrito (preenchido com as informações correspondentes).

POST Callback - Intenção de venda

📘

seusite.com.br/seuservico?cpfCnpj={{CpfCnpj}}&intencaoVendaId={{ControlPayId}}&intencaoVendaReferencia={{SeuId}}&pedidoId={{ControlPayPedidoId}}&pedidoReferencia={{SeuPedidoId}}

Variáveis:

CpfCnpj: CPF/CNPJ. ControlPayId: ID ControlPay da intenção de venda. SeuId: Sua referência da intenção de venda. ControlPayPedidoId: ID ControlPay do pedido. SeuPedidoId: Sua referência do pedido.

Callback para a intenção de venda. Se não houve registro de pedido, o pedidoId e o pedidoReferencia estarão em branco.

HEADERS
Content-Typeapplication/json
User-AgentNomeDaAutomacao/1.0
PARAMS
cpfCnpj{CpfCnpj}
intencaoVendaId{ControlPayId}
intencaoVendaReferencia{SeuId}
pedidoId{ControlPayPedidoId}
pedidoReferencia{SeuPedidoId}

Exemplo: Callback de venda

curl --location --request POST 'seusite.com.br/seuservico?cpfCnpj={{CpfCnpj}}&intencaoVendaId={{ControlPayId}}&intencaoVendaReferencia={{SeuId}}&pedidoId={{ControlPayPedidoId}}&pedidoReferencia={{SeuPedidoId}}' \
--header 'Content-Type: application/json' \
--header 'User-Agent: NomeDaAutomacao/1.0' \
--data-raw ''

POST Callback - Intenção impressão

📘

seusite.com.br/seuservico?intencaoImpressaoId={{ControlPayId}}&intencaoImpressaoReferencia={{SeuId}}&intencaoImpressaoStatus={{Status}}

Variáveis:

ControlPayId: ID ControlPay da intenção de impressão. SeuId: Seu ID da intenção de impressão. Status: Status (ID) da impressão.

Os status retornáveis são:

StatusValor
ImpressaoEnviada5
Imprimindo10
Impresso15
Expirado20
ErroImpressao25
PARAMS
intencaoImpressaoId{ControlPayId}
intencaoImpressaoReferencia{SeuId}
intencaoImpressaoStatus{Status}

Exemplo: Callback de impressão

curl --location --request POST 'seusite.com.br/seuservico?intencaoImpressaoId={{ControlPayId}}&intencaoImpressaoReferencia={{SeuId}}&intencaoImpressaoStatus={{Status}}'

Did this page help you?