ORION API DOC v1.0

1. Autenticação


2. Endpoints

2.1. Solicitação de QR Code para Pagamento (Cash-In)

2.2. Parâmetros de Requisição

ParâmetroTipoObrigatórioDescrição
customerobjetoSimDetalhes do cliente que fará o pagamento.
document.typestringSimTipo de documento do cliente (ex.: "cpf").
document.numberstringSimNúmero do documento do cliente (ex.: "91516432002").
namestringSimNome do cliente (ex.: "User").
emailstringSimEmail do cliente (ex.: "johndoe@gmail.com").
phonestringSimTelefone do cliente com código do país (ex.: "+5582985113768").
amountintSimValor da transação em centavos (ex.: 15000 para R$150,00).
paymentMethodstringSimMétodo de pagamento (deve ser "pix").
itemsarraySimLista de itens que compõem a transação.
tangibleboolSimDefine se o item é tangível (ex.: true).
titlestringSimTítulo do item (ex.: "Saldo").
unitPriceintSimPreço unitário em centavos (ex.: 15000).
quantityintSimQuantidade de itens (ex.: 1).
split_tostringNãoEmail do destinatário da divisão de pagamento (ex.: "marydoe@gmail.com").
percent_splitintNãoPercentual da transação que será dividido com o destinatário (ex.: 10).
postback_urlstringSimURL de callback para notificações da transação.

Exemplo de Requisição:

{
  "customer": {
    "document": {
      "type": "cpf",
      "number": "39374428040"
    },
    "name": "User",
    "email": "johndoe@gmail.com",
    "phone": "+553191516432002"
  },
  "amount": 15000,
  "paymentMethod": "pix",
  "items": [
    {
      "tangible": true,
      "title": "Saldo",
      "unitPrice": 15000,
      "quantity": 1
    }
  ],
  "split_to": "marydoe@gmail.com",
  "percent_split": 10,
  "postback_url": "https://seusite.com/orion-callback"
}

Exemplo de Resposta:

{
  "status": "success",
  "transaction": {
    "id": "34089",
    "user_id": "417",
    "amount": "1.00",
    "paymentMethod": "pix",
    "card_id": "1",
    "card_hash": "0",
    "card_number": "0",
    "card_holderName": "0",
    "card_expirationMonth": "0",
    "card_expirationYear": "0",
    "card_cvv": "0",
    "installments": "0",
    "customer_id": "j5fafc7c6a9874635e34e5d5ec3a53qe",
    "customer_name": "John Doe",
    "customer_email": "johndoe@gmail.com",
    "customer_document_number": "39374428040",
    "customer_document_type": "cpf",
    "customer_phone": "553191516432002",
    "customer_externalRef": "0",
    "shipping_fee": "0.00",
    "shipping_street": "",
    "shipping_streetNumber": "",
    "shipping_complement": "",
    "shipping_zipCode": "",
    "shipping_neighborhood": "",
    "shipping_city": "",
    "shipping_state": "",
    "shipping_country": "BR",
    "item_title": "Teste API",
    "item_unitPrice": "1.00",
    "item_quantity": "1",
    "item_tangible": "1",
    "item_externalRef": "0",
    "boleto_expiresInDays": "30",
    "pix_expiresInDays": "30",
    "postbackUrl": "https://url-callback/orion-callback",
    "metadata": "",
    "traceable": "1",
    "ip": "",
    "split_recipientId": "1",
    "split_amount": "1.00",
    "split_chargeProcessingFee": "1",
    "status": "0",
    "idqrcode": "j5fafc7c6a9874635e34e5d5ec3a53qe",
    "created_at": "2024-11-13 10:31:24",
    "updated_at": "2024-11-13 10:31:24",
    "split_to": "0",
    "split_value": "0.00",
    "percent_split": "0.00",
    "pix_payload": "00020126850014br.gov.bcb.pix2563pix.voluti.com.br/qr/v3/at/2c9628ca-8cc0-4f89-aacc-8692e6a200d75204000053039865802BR5909DET_PAY_62070503***630413B9",
    "pix_image_base64": "https://generator.qrcodefacil.com/qrcodes/static-872718accef18e337d7da93d80ea8bd1.svg"
  }
}

2.3. Códigos de Status

Código de StatusDescrição
200 OKQR Code gerado com sucesso.
400 Bad RequestDados inválidos (ex.: valor fora dos limites permitidos).
500 Internal Server ErrorFalha na comunicação com o banco.

2.4. Saque via Pix (Cash-Out)

2.5. Parâmetros de Requisição

ParâmetroTipoObrigatórioDescrição
value_centsintegerSimValor do saque em centavos.
receiver_namestringSimNome do recebedor.
receiver_documentstringSimTipo de documento do recebedor (ex.: "CPF").
pix_keystringSimChave Pix do recebedor.

Exemplo de Requisição:

{
  "value_cents": 15000,
  "receiver_name": "Nome do Recebedor",
  "receiver_document": "CPF",
  "pix_key": "39374428040"
}

Exemplo de Resposta:

{
  "status": "success",
  "response": {
    "endToEndId": "E3038525920241113134319026621e7c",
    "eventDate": "2024-11-13T13:43:19.026+00:00",
    "status": "PENDING",
    "id": 83226980,
    "payment": {
      "currency": "BRL",
      "amount": 2
    },
    "type": "QUEUED"
  }
}

2.6. Códigos de Status

CódigoStatusDescrição
200OKSaque realizado com sucesso.
400Bad RequestDados inválidos ou ausência de permissões para realizar o saque.
500Internal Server ErrorFalha na comunicação com o banco.

3. Callback

A resposta de callback enviada pelo gateway de pagamento fornece informações sobre o status da transação realizada. Este callback será enviado para o endpoint de URL definido no parâmetro postback_url durante a criação de uma transação.

3.1 Estrutura Básica de um Callback

O callback é uma requisição HTTP enviada pelo Havenpay para a URL definida no campo postback_url no formato JSON. A estrutura da resposta de callback contém informações detalhadas sobre a transação, como o status, identificador da transação e detalhes adicionais.

3.2 Exemplo de Callback para Transação de Pagamento (Cash-In)

3.3 Exemplo de Resposta

{
  "id": "78548",
  "status": 1,
  "payment_method": "pix",
  "amount": "2.00",
  "external_ref": ""
}

3.4 Parâmetros de Resposta

ParâmetroTipoDescrição
idstringID único da transação gerado pelo gateway de pagamento.
statusintegerStatus da transação, onde 1 indica sucesso. Outros valores podem indicar falhas ou pendências.
payment_methodstringMétodo de pagamento utilizado para a transação (neste caso, pix).
amountstringValor da transação em moeda local, apresentado no formato decimal.
external_refstringCampo para referência externa, se aplicável. Este campo pode estar vazio se não houver referência externa fornecida.

3.5 Exemplo de Uso

Após receber a resposta de callback, o sistema deve processar os dados conforme o status da transação, utilizando o campo id para identificar a transação e status para verificar o sucesso ou erro da operação.

Este retorno deve ser usado para atualizar o status da transação no banco de dados, enviar notificações ao usuário ou realizar ações adicionais necessárias para o fluxo da aplicação.