Entrega
Rota da API para liberar ou retirar acessos enviando uma venda para uma entrega Customizada, com processamento na hora.
Esta rota recebe uma venda no mesmo formato do postback da entrega Customizada e processa na hora, sem fila: cria o aluno se ele ainda não existir, libera (ou retira) os cursos configurados na entrega e já devolve o resultado.
Base: https://<sua-plataforma>/api/v1 · Autenticação: cabeçalho Authorization com sua chave (veja API).
A venda precisa casar com uma entrega do tipo Customizado: o produto_id enviado tem que ser igual ao ID do Produto cadastrado na entrega. Veja como criar uma em Entrega Customizada.
Enviar uma entrega
POST /entrega/enviar| Parâmetro | Obrigatório | Descrição |
|---|---|---|
status | Sim | Situação da venda: aprovado libera o acesso; cancelado, reembolsado, chargeback ou disputa retiram o acesso dado por essa venda |
produto_id | Sim | O ID do Produto cadastrado na entrega Customizada |
cliente_email | Sim | E-mail do aluno |
codigo | Não | Código único da venda (se não enviar, a plataforma gera um). Envie o mesmo código para atualizar a mesma venda, por exemplo num reembolso |
cliente_nome | Não | Nome do aluno |
cliente_doc | Não | CPF ou CNPJ |
cliente_celular | Não | Celular |
cliente_endereco, cliente_endereco_n, cliente_endereco_comp, cliente_endereco_bairro, cliente_endereco_cidade, cliente_endereco_estado, cliente_endereco_cep | Não | Endereço do cliente |
produto_nome | Não | Nome do produto vendido (só registro) |
valor | Não | Valor da venda (ex.: 497.00) |
pagamento | Não | Forma de pagamento (só registro) |
recorrencia_id | Não | Código da assinatura, em vendas recorrentes |
recorrencia_status | Não | em-atraso ou cancelado retiram o acesso da assinatura |
tags | Não | Tags a aplicar no aluno, separadas por ponto e vírgula (ex.: VIP;Turma Outubro) |
comecou_em | Não | Data de início do acesso, para liberar com data retroativa |
O corpo pode ir em JSON ou como formulário. Ao contrário do postback, esta rota não precisa do campo token: a chave de API já autentica a requisição.
curl -X POST https://escola.asalahub.com/api/v1/entrega/enviar \
-H "Authorization: ash_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"codigo": "PEDIDO-1001",
"status": "aprovado",
"produto_id": "CURSO-ATENDIMENTO",
"cliente_nome": "Maria Silva",
"cliente_email": "maria@email.com",
"cliente_celular": "+5521999990000",
"valor": "497.00",
"tags": "Turma Outubro"
}'A resposta traz, dentro de uma lista, a venda registrada (a mesma que aparece em Vendas no painel):
{
"success": true,
"code": 200,
"data": [
{
"id": 845,
"instancia_id": 3,
"integracao_id": 21,
"importacao_id": null,
"importacao_comecou_em": null,
"processado": 1,
"engine": "custom",
"engine_id": "1",
"recorrencia_id": null,
"recorrencia_status": null,
"recorrencia_encerra_em": null,
"status": "aprovado",
"pagamento": null,
"produto_id": "CURSO-ATENDIMENTO",
"produto_nome": null,
"itens": null,
"cliente_nome": "Maria Silva",
"cliente_doc": null,
"cliente_email": "maria@email.com",
"cliente_celular": "+5521999990000",
"cliente_endereco": null,
"cliente_endereco_cep": null,
"cliente_endereco_comp": null,
"cliente_endereco_n": null,
"cliente_endereco_bairro": null,
"cliente_endereco_cidade": null,
"cliente_endereco_estado": null,
"valor": "497.00",
"erro": null,
"payload": { "codigo": "PEDIDO-1001", "status": "aprovado", "...": "..." },
"payload_headers": { "content-type": "application/json", "...": "..." },
"updated_at": "15/10/2026 às 10:42",
"created_at": "15/10/2026 às 10:42"
}
],
"profiler": { "start": 1789737057.12, "finish": 1789737057.31, "process": 0.19 }
}| Campo | Descrição |
|---|---|
id | ID da venda na plataforma |
integracao_id | ID da entrega que recebeu a venda |
processado | 1 quando a venda já foi processada |
status | Situação da venda (aprovado, cancelado, reembolsado...) |
erro | Motivo, se algo impediu o processamento |
payload | O corpo que você enviou |
Se faltar um campo obrigatório, nenhuma entrega casar com o produto_id ou o processamento falhar (por exemplo, e-mail inválido ou de um administrador), a resposta é 409 com o motivo em msg.
Postback por entrega (sem chave de API)
Se o sistema que vai avisar as vendas não consegue enviar o cabeçalho Authorization (caso da maioria dos gateways de pagamento), use o postback da entrega em vez desta rota. Cada entrega tem um endereço próprio, mostrado na tela da entrega, no formato:
https://<sua-plataforma>/api/postback/<gateway>/<token>O <token> identifica e autoriza aquela entrega, então trate o endereço como uma senha. Diferente do /entrega/enviar, o postback entra numa fila e é processado em seguida. Veja como configurar em Entregas e integrações e, para o formato Customizado, em Entrega Customizada.