Seu próprio Gateway
Envie vendas de qualquer sistema para a sua plataforma com o postback Customizado.
Nesta página
O gateway Customizado serve para quem vende por um sistema próprio, por um checkout que não está na lista ou por uma automação (Zapier, Make, n8n e similares). Você manda um aviso para a sua plataforma a cada venda, cancelamento ou reembolso, e ela libera ou remove o acesso do aluno.
Ele também serve para quem não vende por gateway e só quer criar entregas para liberar manualmente, no perfil do aluno.
1. Crie a entrega na sua plataforma
- No painel, abra Vendas › Entregas e clique em Nova Entrega.
- Na tela Selecione um Gateway, escolha Customizado.
- Dê um nome à entrega e escolha a Modalidade de Venda (Venda única ou Assinatura).
- No campo ID do Produto, crie um código livre que identifique o que está sendo vendido, por exemplo
CURSOX3MESES. É esse código que você vai mandar no campoproduto_idde cada venda. - Em Conteúdo entregue, marque os cursos, o tempo de acesso e a liberação de cada um.
- Clique em Salvar.
Depois de salvar, o bloco Conexão com o gateway mostra a URL de Postback desta entrega e o Token de postback da plataforma.
2. Para onde enviar
Faça um POST para um destes endereços:
| Endereço | Autorização |
|---|---|
https://<sua-plataforma>/api/postback/custom/<token> (a URL de Postback da entrega) | O token já vai na URL. Não precisa do campo token no corpo |
https://<sua-plataforma>/api/postback/custom | Mande o campo token no corpo, com o Token de postback da plataforma |
Use a URL da entrega quando cada produto tem sua própria integração. Use o endereço geral quando um único sistema manda vendas de vários produtos: a plataforma acha a entrega pelo produto_id.
O Token de postback aparece na própria tela da entrega e também em Configurações › Integrações › Chaves de API, aba API legada.
Quem tiver o token de postback consegue registrar vendas na sua plataforma. Não coloque o token em páginas públicas nem em formulários. O formulário de cadastro gratuito tem um token próprio, diferente deste.
O corpo pode ir em JSON (Content-Type: application/json) ou como formulário (application/x-www-form-urlencoded).
3. Campos aceitos
| Campo | Descrição | Obrigatório |
|---|---|---|
token | Token de postback da plataforma (dispensado se você usar a URL da entrega) | Sim, no endereço geral |
codigo | ID único da venda | Sim |
status | aprovado, cancelado ou disputa | Sim |
produto_id | O ID cadastrado na entrega | Sim |
cliente_email | E-mail do cliente | Sim |
produto_nome | Nome do produto | |
valor | Valor da venda, ex.: 123.50 | |
pagamento | Forma de pagamento | |
cliente_nome | Nome do cliente | |
cliente_doc | CPF ou CNPJ, com ou sem pontuação | |
cliente_celular | DDD + celular | |
cliente_endereco | Endereço | |
cliente_endereco_n | Número | |
cliente_endereco_comp | Complemento | |
cliente_endereco_bairro | Bairro | |
cliente_endereco_cidade | Cidade | |
cliente_endereco_estado | Estado | |
cliente_endereco_cep | CEP | |
recorrencia_id | ID da assinatura ou contrato | |
recorrencia_status | ativo, cancelado ou em-atraso | |
tags | Tags separadas por ; (ponto e vírgula) | |
comecou_em | Data de início do acesso, para liberar com data retroativa (ex.: 15/10/2026 08:00) |
Como o status é interpretado
| Envio | Resultado |
|---|---|
status: aprovado | Libera os cursos da entrega |
status: aprovado + recorrencia_status: em-atraso | Encerra o acesso (assinatura em atraso) |
status: aprovado + recorrencia_status: cancelado | Encerra o acesso (assinatura cancelada) |
status: cancelado | Encerra os acessos da venda. Com recorrencia_id, encerra os de todas as cobranças daquela assinatura |
status: disputa | Funciona como pedido de reembolso: encerra os acessos da venda |
A plataforma também reconhece reembolsado e chargeback no campo status. Os dois encerram os acessos da venda.
As tags enviadas em tags são criadas se ainda não existirem e dadas ao aluno. Num reembolso ou cancelamento, elas são retiradas, a não ser que o aluno já as tivesse antes.
Cada venda precisa de um codigo diferente. Um envio com um código que já existe atualiza aquela venda em vez de criar outra. É assim que o cancelamento encontra a venda aprovada: mande o cancelamento com o mesmo codigo da aprovação.
4. Exemplos
Venda aprovada, enviada para o endereço geral:
{
"token": "SEU_TOKEN_DE_POSTBACK",
"codigo": "PED-1001",
"status": "aprovado",
"produto_id": "CURSOX3MESES",
"produto_nome": "Curso X - 3 meses",
"valor": "297.00",
"cliente_email": "maria@exemplo.com.br",
"cliente_nome": "Maria Souza",
"cliente_doc": "123.456.789-09",
"cliente_celular": "5521999990000",
"tags": "Turma Outubro;Clientes"
}Cancelamento da mesma venda:
{
"token": "SEU_TOKEN_DE_POSTBACK",
"codigo": "PED-1001",
"status": "cancelado",
"produto_id": "CURSOX3MESES",
"cliente_email": "maria@exemplo.com.br"
}Assinatura em atraso:
{
"token": "SEU_TOKEN_DE_POSTBACK",
"codigo": "ASS-77-2026-10",
"status": "aprovado",
"produto_id": "CLUBE-MENSAL",
"cliente_email": "joao@exemplo.com.br",
"recorrencia_id": "ASS-77",
"recorrencia_status": "em-atraso"
}Envio pela linha de comando, usando a URL da entrega (sem token no corpo):
curl -X POST "https://escola.asalahub.com/api/postback/custom/pb_SEU_TOKEN_DA_ENTREGA" \
-H "Content-Type: application/json" \
-d '{"codigo":"PED-1002","status":"aprovado","produto_id":"CURSOX3MESES","cliente_email":"ana@exemplo.com.br","cliente_nome":"Ana Lima"}'5. A resposta
Quando o envio é recebido, a plataforma responde com o código 200 e os dados da venda registrada:
{
"success": true,
"code": 200,
"data": { "carga": { "id": 123, "status": "aprovado", "processado": 0, "erro": null } }
}A resposta acima está resumida: a carga traz também os dados do cliente e do produto.
O processamento acontece logo em seguida, em segundo plano. Por isso a resposta 200 quer dizer "recebido", não "acesso liberado". Se algo der errado (entrega não encontrada, token inválido, e-mail ausente), a venda aparece em Vendas › Vendas com o status Com erro e o motivo. Depois de corrigir, clique em Reprocessar.
A resposta 409 só aparece quando o corpo não pode ser lido.
A plataforma procura o aluno primeiro pelo CPF/CNPJ (cliente_doc) e depois pelo e-mail. A segunda compra de um mesmo CPF entra no perfil já existente, sem mudar nome nem e-mail. Uma venda com o e-mail de um administrador da plataforma não é processada.