Envio via Pix


Geração de Pix de Saída (Pix out) — GeneratePix

A geração de Pix de saída permite a criação de uma ordem de pagamento para uma conta de destino.

❗️

Importante:

O método não aceita Chave Pix. O pagamento deve ser solicitado obrigatoriamente com os dados bancários da conta destino, incluindo banco, agência, conta, dígito, nome e CPF/CNPJ do favorecido.

Após o envio da solicitação, a Owl registra a ordem de Pix e retorna um identificador da operação. Esse retorno confirma o recebimento da solicitação, mas não representa necessariamente a liquidação do Pix.

A confirmação final ocorre de forma assíncrona, por meio de webhook enviado para a URL cadastrada pelo parceiro.

O parceiro deve considerar como sucesso apenas o status Pago.

Status como Cancelado, Erro ou Rejeitado devem ser tratados como falha.

Recomenda-se armazenar o identificador retornado pela Owl e utilizar descrições ou etiquetas para facilitar a conciliação e rastreabilidade da operação.

⚠️

A documentação atual não prevê chave de idempotência para este endpoint. Por isso, em casos de timeout, instabilidade ou reenvio da solicitação, o parceiro deve adotar controles internos para evitar pagamentos duplicados.

Endpoint

POST {BASE_URL}/boleto-app/api/Pix/GeneratePix

Headers

HeaderValor
AuthorizationBasic {base64(usuario:senha)}
Content-Typeapplication/json

Corpo da requisição

CampoTipoObrigatórioDescrição
clientIdnumberSimIdentificador do parceiro (cliente) na Owl.
toNamestringSimNome do favorecido (destino).
toTaxIdstringSimCPF/CNPJ do favorecido.
toBankstringSimCódigo do banco de destino (ISPB/COMPE).
toBankBranchstringSimAgência de destino.
toBankAccountstringSimConta de destino.
toBankAccountDigitstringSimDígito da conta de destino.
toBankNamestringNãoNome do banco de destino.
valuenumberSimValor do Pix (decimal, em reais).
paymentDatestring (date-time)SimData/hora de execução do pagamento (ISO 8601).
descriptionstringNãoDescrição interna da operação.
customerMessagestringNãoMensagem exibida ao favorecido.
tagsstring[]NãoEtiquetas livres para conciliação.

Exemplo de request (campos opcionais comentados)

{
  // ---- obrigatórios ----
  "clientId": 1024,
  "toName": "Maria Souza",
  "toTaxId": "12345678909",
  "toBank": "341",
  "toBankBranch": "0001",
  "toBankAccount": "98765",
  "toBankAccountDigit": "0",
  "value": 150.75,
  "paymentDate": "2026-06-07T12:00:00",

  // ---- opcionais ----
  "toBankName": "Itaú Unibanco",                 // não obrigatório
  "description": "Repasse parceiro #4421",       // não obrigatório (uso interno)
  "customerMessage": "Pagamento do pedido 4421", // não obrigatório (mensagem ao favorecido)
  "tags": ["repasse", "pedido-4421"]             // não obrigatório
}

Observação: o JSON acima usa comentários apenas para documentação. No envio real, remova os comentários (JSON puro).

Exemplo com cURL

curl -X POST "{BASE_URL}/boleto-app/api/Pix/GeneratePix" \
  -H "Authorization: Basic $(printf '%s' 'usuario:senha' | base64)" \
  -H "Content-Type: application/json" \
  -d '{
    "clientId": 1024,
    "toName": "Maria Souza",
    "toTaxId": "12345678909",
    "toBank": "341",
    "toBankBranch": "0001",
    "toBankAccount": "98765",
    "toBankAccountDigit": "0",
    "toBankName": "Itaú Unibanco",
    "value": 150.75,
    "paymentDate": "2026-06-07T12:00:00",
    "description": "Repasse parceiro #4421",
    "customerMessage": "Pagamento referente ao pedido 4421",
    "tags": ["repasse", "pedido-4421"]
  }'

Resposta

Todas as respostas usam o envelope padrão { success, data, message }.

200 — Sucesso

{
  "success": true,
  "data": {
    "pixId": 2108,
    "documentNumber": 887766,
    "url": "https://{BASE_URL}/comprovantes/pix/2108"
  },
  "message": null
}
Campo (data)TipoDescrição
pixIdnumberIdentificador do Pix na Owl. Use-o para consultar o status em GET /Pix/GetPix/{pixId}.
documentNumbernumberNúmero do documento da operação no bancarizador.
urlstringURL do comprovante.

Erro (ex.: 400 / 403 / 503)

{
  "success": false,
  "data": null,
  "message": "Erro ao gerar Pix: Falha na integração. Verifique os dados informados."
}
CódigoQuando
403Credenciais inválidas ou parceiro não autorizado.
400 / 503Dados inválidos ou falha na integração com o bancarizador.

Status possíveis do Pix

Existem dois níveis de status:

1. GET /Pix/GetPix/{pixId} — status interno da Owl. Apenas dois valores:

StatusSignificado
OpenCriado, aguardando o retorno do bancarizador.
ClosedEncerrado (webhook recebido e cliente notificado).

2. Campo status do webhook — status do bancarizador, repassado como recebido. Valores possíveis:

StatusSignificado
CreatedCriado (não dispara atualização).
GeneratedGerado.
RegisteredRegistrado.
PaidPago (sucesso).
CancelCancelado.
ErrorErro.
RegisteringRegistrando.
RejectedRejeitado.

Notificação assíncrona (webhook)

Quando o Pix é liquidado, a Owl envia um POST para a sua UrlPix cadastrada (com Basic Auth de saída) contendo o resultado:

{
  "pixId": 2108,
  "status": "Paid",
  "totalValue": 150.75,
  "creditedValue": 150.75,
  "rateValue": 0.00,
  "paymentDate": "2026-06-07T12:00:03",
  "toName": "Maria Souza",
  "toTaxNumber": "12345678909",
  "toBankCode": "341",
  "toBankBranch": "0001",
  "toBankAccount": "98765",
  "toBankAccountDigit": "0",
  "fromName": "Empresa X LTDA",
  "fromTaxNumber": "12345678000190",
  "fromBankCode": "...",
  "fromBankBranch": "...",
  "fromBankAccount": "...",
  "fromBankAccountDigit": "...",
  "errorCode": null,
  "errorDescription": null
}

Consulta de status sob demanda: GET {BASE_URL}/boleto-app/api/Pix/GetPix/{pixId} retorna { "status": "...", "url": "..." }.