Pixley Logo

Pixley API Documentation

Esta documentação descreve os principais endpoints da API do sistema Pixley Crypto Transactions.

Base URL

https://crypto.pixley.app

Autenticação

Todos os endpoints aceitam autenticação via Authorization: Bearer <seu-token-jwt> ou via cabeçalhos de API:

Authorization: Bearer <seu-token-jwt>
x-api-key: <your-api-key>
x-secret-key: <your-secret-key>

💡 As credenciais de API (API key e Secret key) devem ser obtidas através do nosso suporte.

Health Status (curl)

curl -s -X GET "https://crypto.pixley.app/api/health" -H "Accept: application/json"
{
  "status": "OK",
  "environment": "production",
  "service": {
    "name": "pixley-crypto-transactions",
    "version": "2.0.0"
  },
  "uptime": 41027.390472536,
  "timestamp": "2025-11-28T15:22:54.901Z"
}

Listar Carteiras

Lista carteiras vinculadas ao usuário

CARTEIRACONSULTA

Retorna as carteiras do usuário autenticado e suas blockchains suportadas

Requisição
GET https://crypto.pixley.app/api/wallet/list
Authorization: Bearer {seu_token_jwt}
x-api-key: <your-api-key>
x-secret-key: <your-secret-key>
Resposta
{
  "success": true,
  "data": {
    "wallets": [
      {
        "id": 1001,
        "address": "0x7B14e8c72a989B0Ae3D95036E4c5F1DdC23Fa6f8",
        "blockchains": [
          "Ethereum",
          "BSC",
          "Polygon"
        ]
      },
      {
        "id": 1002,
        "address": "0xA3f92c1b4C7F8e52E63B1d4C9C5Fb27E9B8A71d2",
        "blockchains": [
          "Ethereum",
          "Polygon"
        ]
      }
    ]
  }
}
Parâmetros da Requisição

Autenticação (escolha 1):

AuthorizationBearer {seu_token_jwt}
x-api-key<your-api-key>
x-secret-key<your-secret-key>

Parâmetros de Query (opcionais):

pageNúmero da página (padrão: 1)
limitItens por página (padrão: 20)
blockchainFiltrar por rede (Ethereum, BSC, Polygon)

🔍 Funcionalidades:

Retorna carteiras vinculadas ao usuário
Lista blockchains suportadas por cada carteira

Consultar Saldos do Usuário

Retorna saldos por moeda da conta autenticada

SALDOCONSULTA

Lista os saldos por moeda do usuário autenticado, com valores disponível, reservado e total

Requisição
GET https://crypto.pixley.app/api/balance/me
Authorization: Bearer {seu_token_jwt}
x-api-key: <your-api-key>
x-secret-key: <your-secret-key>
Resposta
{
  "success": true,
  "data": {
    "userId": "XXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "balances": [
      {
        "currency": "BRL",
        "balance": "1250.89",
        "reserved": "300.00",
        "available": "950.89",
        "created_at": "2025-09-15T12:20:45.112Z",
        "updated_at": "2025-11-28T14:55:03.441Z"
      },
      {
        "currency": "USDT",
        "balance": "532.12000000",
        "reserved": "12.50000000",
        "available": "519.62000000",
        "created_at": "2025-09-15T12:20:45.210Z",
        "updated_at": "2025-11-27T18:42:11.882Z"
      },
      {
        "currency": "USDC",
        "balance": "120.00000000",
        "reserved": "0.00000000",
        "available": "120.00000000",
        "created_at": "2025-10-02T08:10:22.951Z",
        "updated_at": "2025-11-20T06:12:30.144Z"
      },
      {
        "currency": "USD",
        "balance": "87.45000000",
        "reserved": "10.00000000",
        "available": "77.45000000",
        "created_at": "2025-10-02T08:10:23.002Z",
        "updated_at": "2025-11-25T10:03:09.210Z"
      },
      {
        "currency": "BTC",
        "balance": "0.00421500",
        "reserved": "0.00000000",
        "available": "0.00421500",
        "created_at": "2025-09-15T12:20:45.330Z",
        "updated_at": "2025-11-26T22:48:55.512Z"
      }
    ],
    "timestamp": "2025-11-28T15:40:12.999Z"
  }
}
Parâmetros da Requisição

Autenticação (escolha 1):

AuthorizationBearer {seu_token_jwt}
x-api-key<your-api-key>
x-secret-key<your-secret-key>

🔍 Informações retornadas:

balancesLista de moedas com balance, reserved e available
timestampMomento da coleta dos saldos
userIdIdentificador do usuário autenticado

Transferência entre Carteiras

Transfere fundos entre carteiras ou para endereço externo

CARTEIRATRANSFERÊNCIA

Cria uma transferência de fundos entre carteiras internas ou para um endereço externo em redes suportadas

Requisição
POST https://crypto.pixley.app/api/wallet/transfer
Authorization: Bearer {seu_token_jwt}
x-api-key: <your-api-key>
x-secret-key: <your-secret-key>
Content-Type: application/json

{
  "tokenSymbol": "USDT",
  "network": "Polygon",
  "amount": "3.2500",
  "toAddress": "0x0a7A5239d352244C0303204c3f5D538ec13EF6CE"
}
Resposta
{
  "success": false,
  "error": "Saldo insuficiente",
  "error_code": "INSUFFICIENT_BALANCE",
  "details": {
    "requested": "3.25000000",
    "available": "0.00000000",
    "currency": "USDT"
  },
  "timestamp": "2025-11-28T15:04:58.674Z",
  "message": "Erro na operação"
}
Parâmetros da Requisição

Autenticação (escolha 1):

AuthorizationBearer {seu_token_jwt}
x-api-key<your-api-key>
x-secret-key<your-secret-key>

Campos da requisição:

tokenSymbolSímbolo do token (ex.: USDT)
networkRede da transação (Ethereum, BSC, Polygon)
amountValor a transferir (string decimal)
toAddressEndereço de destino da carteira

Status disponíveis:

PENDINGTransferência criada e aguardando processamento
PROCESSINGEm processamento na rede
COMPLETEDConfirmada na rede
FAILEDFalha na execução ou validação

Listar Boletos do Usuário

Lista boletos do usuário autenticado

BOLETOCONSULTA

Lista os boletos do usuário autenticado com filtros e paginação

Requisição
GET https://crypto.pixley.app/api/boletos
Authorization: Bearer {seu_token_jwt}
x-api-key: <your-api-key>
x-secret-key: <your-secret-key>
Resposta
{
  "success": true,
  "data": {
    "boletos": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "txId": "34191790010104351004791020150008291070026000",
        "nominalValue": 260.00,
        "dueDate": "2024-12-31",
        "status": "PENDING",
        "createdAt": "2024-01-15T10:30:00Z",
        "updatedAt": "2024-01-15T10:30:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 10,
      "total": 5,
      "totalPages": 1,
      "hasNext": false,
      "hasPrev": false
    }
  }
}
Parâmetros da Requisição

Autenticação (escolha 1):

AuthorizationBearer {seu_token_jwt}
x-api-key<your-api-key>
x-secret-key<your-secret-key>

Parâmetros de Query (opcionais):

pageNúmero da página (padrão: 1)
limitItens por página (padrão: 20)
statusFiltrar por status (PENDING, PAID, EXPIRED, CANCELLED)
startDateData inicial (YYYY-MM-DD)
endDateData final (YYYY-MM-DD)

🔍 Funcionalidades:

Paginação automática
Filtros por status e período
Acesso apenas aos boletos do usuário autenticado
Informações completas de cada boleto

Pagamento de Boleto

Processa pagamento de boleto

BOLETOPAGAMENTO

Processa o pagamento de um boleto através da fila de processamento assíncrono

Requisição
POST https://crypto.pixley.app/api/boletos/pay
Authorization: Bearer {seu_token_jwt}
x-api-key: <your-api-key>
x-secret-key: <your-secret-key>
Content-Type: application/json

{
  "codBarraLinhaDigitavel": "34191790010104351004791020150008291070026000",
  "valorPagar": 260.00,
  "dataVencimento": "2024-12-31"
}
Resposta
{
  "success": true,
  "message": "Boleto adicionado à fila de processamento",
  "data": {
    "boleto": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "txId": "34191790010104351004791020150008291070026000",
      "nominalValue": 260.00,
      "dueDate": "2024-12-31",
      "status": "PENDING",
      "transactionId": "tx_123456789",
      "createdAt": "2024-01-15T10:30:00Z"
    },
    "queueInfo": {
      "jobId": "job_987654321",
      "position": 1
    }
  }
}
Parâmetros da Requisição

Autenticação (escolha 1):

AuthorizationBearer {seu_token_jwt}
x-api-key<your-api-key>
x-secret-key<your-secret-key>

Campos da requisição:

codBarraLinhaDigitavelCódigo de barras ou linha digitável do boleto (obrigatório)
valorPagarValor a ser pago (opcional - será extraído do código se não fornecido)
dataVencimentoData de vencimento no formato YYYY-MM-DD (opcional)

Status disponíveis:

PENDINGBoleto criado, aguardando pagamento
PAIDBoleto pago com sucesso
EXPIREDBoleto vencido
CANCELLEDBoleto cancelado

🔄 Processamento Assíncrono:

Os pagamentos são processados via fila (boletoPaymentQueue)
Retorna informações da posição na fila
Status atualizado automaticamente após processamento

Webhooks

O sistema envia notificações via webhook para eventos importantes. Todos os webhooks são enviados via POST com assinatura HMAC-SHA256 no header X-Signature.

Eventos Suportados

DEPOSIT

Quando um depósito é recebido

WITHDRAWAL

Quando um saque é processado

PAYMENT REQUEST

Quando uma solicitação de pagamento é criada

Estrutura Base do Webhook

{
  "eventId": "evt_123e4567-e89b-12d3-a456-426614174000",
  "eventType": "DEPOSIT",
  "userId": "456e7890-e89b-12d3-a456-426614174000",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    // Dados específicos do evento
  }
}

Exemplos de Webhooks

Webhook - Evento DEPOSIT

Exemplo de webhook enviado quando um depósito é recebido

WEBHOOKDEPOSIT
Exemplo de Payload
{
  "eventId": "evt_123e4567-e89b-12d3-a456-426614174000",
  "eventType": "DEPOSIT",
  "userId": "456e7890-e89b-12d3-a456-426614174000",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "transactionId": "txn_789abc123def456",
    "amount": "100.00",
    "currency": "BRL",
    "status": "completed",
    "pix_key": "user@example.com",
    "sender_name": "João Silva",
    "sender_document": "12345678901"
  }
}

Webhook - Evento WITHDRAWAL

Exemplo de webhook enviado quando um saque é processado

WEBHOOKWITHDRAWAL
Exemplo de Payload
{
  "eventId": "evt_456e7890-e89b-12d3-a456-426614174001",
  "eventType": "WITHDRAWAL",
  "userId": "456e7890-e89b-12d3-a456-426614174000",
  "timestamp": "2024-01-15T10:35:00Z",
  "data": {
    "withdrawal_id": "withdrawal_1234567890_abc123",
    "status": "completed",
    "source_currency": "USDT",
    "source_amount": 50.00,
    "target_currency": "PIX",
    "amount_received": 49.00,
    "tx_hash": "0xabc123def456...",
    "network": "Polygon",
    "pix_key": "user@example.com",
    "recipient_name": "João Silva"
  }
}

Webhook - Evento PAYMENT REQUEST

Exemplo de webhook enviado quando uma solicitação de pagamento é criada

WEBHOOKPAYMENT
Exemplo de Payload
{
  "eventId": "evt_789abc12-e89b-12d3-a456-426614174002",
  "eventType": "PAYMENT_REQUEST",
  "userId": "456e7890-e89b-12d3-a456-426614174000",
  "timestamp": "2024-01-15T10:40:00Z",
  "data": {
    "payment_request_id": "pr_123456789",
    "amount": "250.00",
    "currency": "BRL",
    "status": "pending",
    "qr_code": "00020126580014br.gov.bcb.pix...",
    "expires_at": "2024-01-15T11:40:00Z",
    "description": "Pagamento de serviços"
  }
}