Buscar...

Criar transação

Cria uma transação de recebimento e retorna o ID e a URL de pagamento para o cliente concluir.

Overview

Fluxo de cash-in: crie a transação, obtenha paymentUrl e redirecione o cliente. Consulte por ID ou status, ou receba webhooks.

Endpoint

POSTPOST /transactions
Base URL:https://api.onnixpay.com/api/v1/sdk

Headers

HeaderObrigatórioDescrição
X-API-KeySimSua API Key.
Content-TypeSimObrigatório para POST.

Body Parameters

Todas as propriedades do corpo da requisição, com tipo, obrigatoriedade, restrições e exemplo.

CampoTipoObrigatórioDescrição
amountnumberSimValor em centavos. Ex.: 1000 = R$ 10,00.Inteiro > 0.
descriptionstringNãoDescrição da transação.
externalIdstringNãoID no seu sistema para conciliação.
customerEmailstringNãoE-mail do cliente.Formato e-mail válido.
customerNamestringNãoNome do cliente.
customerDocumentstringNãoCPF ou CNPJ (apenas números).11 ou 14 dígitos.
callbackUrlstringNãoURL para notificação de mudança de status.
metadataobjectNãoMetadados chave/valor para uso interno.

Exemplo cURL

cURL
curl -X POST "https://api.onnixpay.com/api/v1/sdk/transactions" \
  -H "X-API-Key: ox_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
  "amount": 1000,
  "description": "Pedido #1234",
  "externalId": "pedido-1234",
  "customerEmail": "cliente@email.com"
}'

Response — Sucesso (201)

JSON
{
  "id": "txn_abc123",
  "status": "pending",
  "amount": 1000,
  "description": "Pedido #1234",
  "externalId": "pedido-1234",
  "createdAt": "2025-02-09T12:00:00.000Z",
  "paymentUrl": "https://pay.onnixpay.com/..."
}

Campos da resposta

CampoTipoDescrição
idstringID da transação. Use em GET /transactions/{id} e /transactions/{id}/status.
statusstringStatus inicial: pending.
amountnumberValor em centavos.
descriptionstringDescrição informada.
externalIdstringID externo informado.
createdAtstringData/hora de criação (ISO 8601).
paymentUrlstringURL para o cliente concluir o pagamento.

Status codes e erros comuns

StatusCódigoMensagem
400INVALID_REQUESTPayload inválido ou campos obrigatórios faltando.
401INVALID_API_KEYChave de API inválida ou ausente.
429RATE_LIMIT_EXCEEDEDLimite de criações por minuto excedido.

Exemplo de resposta de erro

JSON
{
  "code": "INVALID_REQUEST",
  "message": "Os dados enviados são inválidos.",
  "details": { "field": "amount", "reason": "Deve ser um número positivo." }
}