Introdução
Bem-vindo à documentação completa da nossa API. Esta API foi desenvolvida para facilitar a integração com nosso sistema de pagamentos e saques utilizando PIX, possibilitando a criação de depósitos e solicitações de saque com callbacks para notificações em tempo real.
https://app.lovepixgateway.online/api
Recursos Disponíveis
- Autenticação: Geração de token JWT para acesso seguro aos endpoints
- Depósito: Criação de depósitos com geração de QR Code PIX
- Saque: Solicitação de saques utilizando chaves PIX e cálculo de taxas
- Webhooks: Notificações de callback para informar o status das transações
Autenticação
O endpoint de autenticação permite que os usuários façam login utilizando suas credenciais, recebendo um token JWT que deverá ser enviado no cabeçalho das requisições protegidas.
Parâmetros
| Atributo | Tipo | Descrição |
|---|---|---|
| client_id | string | ID do cliente fornecido no cadastro |
| client_secret | string | Chave secreta do cliente para autenticação |
Exemplo de Requisição
{
"client_id": "seu_cliente_id",
"client_secret": "seu_cliente_secreto"
}
Resposta de Sucesso
{
"message": "Authentication successful.",
"token": "seu_token_jwt",
"user": {
"id": 1,
"name": "Nome do Usuário",
"email": "email@exemplo.com",
"client_id": "seu_cliente_id"
}
}
Depósito
Este endpoint permite criar um depósito e gerar um QR Code PIX para efetuar o pagamento.
Parâmetros
| Atributo | Tipo | Descrição |
|---|---|---|
| amount | number | Valor do depósito |
| external_id | string | ID único da transação externa (para controle idempotente) |
| clientCallbackUrl | string | URL para notificações de status do depósito |
| payer | object | Dados do pagador |
Objeto Payer
| Atributo | Tipo | Descrição |
|---|---|---|
| name | string | Nome completo do pagador |
| string | Email do pagador | |
| document | string | Documento do pagador (CPF ou CNPJ) |
Exemplo de Requisição
{
"amount": 100.00,
"external_id": "id_unico_12345",
"clientCallbackUrl": "https://seuservidor.com/callback",
"payer": {
"name": "João da Silva",
"email": "joao@example.com",
"document": "12345678901"
}
}
Resposta de Sucesso
{
"message": "Deposit created successfully.",
"qrCodeResponse": {
"transactionId": "id_da_transacao",
"status": "PENDING",
"qrcode": "00020101021226930014br.gov.bcb.pix2571qrcode-h.pix...",
"amount": 100.00
}
}
Saque
Este endpoint permite solicitar saque utilizando uma chave PIX, com verificação de saldo, cálculo de taxas e atualização do status da transação.
Parâmetros
| Atributo | Tipo | Descrição |
|---|---|---|
| amount | number | Valor do saque |
| external_id | string | ID único da transação externa |
| pix_key | string | Chave PIX do destinatário |
| key_type | string | Tipo da chave (EMAIL, CPF, CNPJ ou PHONE) |
| description | string | Descrição opcional do saque |
| clientCallbackUrl | string | URL para notificações de status do saque |
Exemplo de Requisição
{
"amount": 50.00,
"external_id": "external-12345",
"pix_key": "exemplo@pix.com",
"key_type": "EMAIL",
"description": "Saque referente ao pedido #123",
"clientCallbackUrl": "https://seuservidor.com/callback"
}
Resposta de Sucesso
{
"transaction_id": "transaction-67890",
"status": "PENDING",
"amount": 50.00,
"fee": 2.50
}
Webhooks
Os webhooks permitem que seu sistema receba notificações em tempo real sobre atualizações no status das transações (depósito e saque). Utilize a URL de callback (clientCallbackUrl) para receber os updates.
Payload - Status PENDING
{
"transaction_id": "id_da_transacao",
"status": "PENDING",
"amount": 100.00,
"type": "Deposit"
}
Payload - Status COMPLETED
{
"transaction_id": "id_da_transacao",
"status": "COMPLETED",
"amount": 100.00,
"type": "Deposit"
}
Payload - Status PENDING
{
"transaction_id": "transaction-67890",
"status": "PENDING",
"amount": 50.00,
"type": "Withdraw"
}
Payload - Status COMPLETED
{
"transaction_id": "transaction-67890",
"status": "COMPLETED",
"amount": 50.00,
"type": "Withdraw"
}
Códigos de Erro
A API utiliza códigos HTTP padrão para indicar o resultado das operações. A seguir, os principais códigos de erro e suas descrições.
{
"error": "Validation failed",
"message": "Os campos fornecidos são inválidos",
"details": {
"amount": ["O campo amount é obrigatório"],
"payer.email": ["O email deve ser válido"]
}
}