Documentação da API VenturePay

Integre pagamentos PIX de forma simples e segura. Nossa API RESTful permite criar cobranças, gerenciar transações e receber notificações em tempo real.

Introdução

A API VenturePay permite que você integre facilmente pagamentos PIX em sua aplicação. Com endpoints simples e seguros, você pode criar cobranças, consultar status de pagamentos e receber notificações em tempo real através de webhooks.

🚀 Principais Recursos

  • Pagamentos PIX instantâneos
  • QR Code gerado automaticamente
  • Webhooks para notificações
  • Dashboard com métricas

💡 Casos de Uso

  • E-commerce
  • Assinaturas recorrentes
  • Marketplaces
  • Aplicativos mobile

URL Base

Todas as requisições para a API VenturePay devem ser feitas para a seguinte URL base:

Produção
https://api.venturepay.com.br/v1/

Ambiente de Testes (Sandbox)

Para testes, utilize tokens com prefixo vp_test_. As transações em sandbox não movimentam dinheiro real.

Rate Limits

A API possui limites de requisições para garantir a estabilidade do serviço:

Tipo de Token Limite Padrão Janela de Tempo Header de Resposta
Sandbox 100 requisições 1 hora X-RateLimit-Remaining
Produção 1.000 requisições 1 hora X-RateLimit-Reset

⚠️ Limite Excedido

Quando o limite é excedido, a API retorna status 429 Too Many Requests

Autenticação

Chaves de API

A autenticação é feita através de duas chaves:

🔑 Public Key

Chave pública que identifica sua conta. Deve ser incluída no corpo da requisição.

vp_prod_ce2d9ce1f7c213eaade842738a4e4

🔐 Secret Key

Chave secreta usada para gerar a assinatura. Mantenha em segurança e nunca exponha no frontend.

1de97abb11146a6c5aa3f84f811da866c211720cadb58ccca41398c6ddf4bcd8

Assinatura (venture-signature)

Toda requisição deve incluir o header venture-signature com o secret token

Exemplo de geração da assinatura
// PHP
$request_body = json_encode([
    'public_key' => 'vp_prod_ce2d9ce1f7c213eaade842738a4e4',
    'customer' => [
        'name' => 'Maria Silva Santos',
        'cpf' => '12345678910',
        'email' => 'cliente@exemplo.com',
        'phone' => '5511987654321'
    ],
    'value' => 100,
    'send_email' => true
]);

$secret_key = '1de97abb11146a6c5aa3f84f811da866c211720cadb58ccca41398c6ddf4bcd8';


// Header: venture-signature: 1de97abb11146a6c5aa3f84f811da866c211720cadb58ccca41398c6ddf4bcd8

Importante - Segurança

  • • A assinatura deve ser calculada com o corpo exato da requisição (JSON)
  • • Use a secret key correspondente à public key enviada
  • • Mantenha a secret key segura no backend
  • • Requisições sem assinatura válida serão rejeitadas

Ambientes

🧪 Sandbox (Testes)

  • Prefixo: vp_test_
  • Sem movimentação real
  • PIX simulado
  • Rate limit: 100/hora

🚀 Produção

  • Prefixo: vp_prod_
  • Transações reais
  • PIX instantâneo
  • Rate limit: 1.000/hora

Endpoints

Criar Cobrança PIX

POST /orders/charge/

Cria uma nova cobrança PIX com QR Code gerado automaticamente.

📤 Requisição

Headers
Header Valor Obrigatório
Content-Type application/json Sim
venture-signature SECRET TOKEN Sim
Body (JSON)
Exemplo de requisição
{
  "public_key": "vp_prod_ce2d9ce1f7c213eaade842738a4e4",
  "customer": {
    "name": "Maria Silva Santos",
    "cpf": "12345678910",
    "email": "user@venturepay.com.br",
    "phone": "5511987654321"
  },
  "value": 100,
  "send_email": true
}
Campo Tipo Obrigatório Descrição
public_key string Sim Sua chave pública de API
customer.name string Sim Nome completo do cliente
customer.cpf string Sim CPF do cliente (apenas números)
customer.email string Sim Email do cliente
customer.phone string Sim Telefone do cliente (com DDD)
value number Sim Valor da cobrança em centavos
send_email boolean Não Enviar email com QR Code para o cliente

📥 Resposta

Exemplo de resposta (200 OK)
{
  "success": true,
  "data": {
    "transaction_id": "VEN97F8E4D3",
    "amount": "100",
    "net_amount": 94,
    "fee": 6,
    "pix_code": "00020101021226820014br.gov.bcb.pix...",
    "qr_code_url": "https://api.qrserver.com/v1/create-qr-code/...",
    "expires_at": "2025-06-24T01:40:53Z",
    "customer": {
      "name": "Maria Silva Santos",
      "document": "12345678910",
      "email": "user@venturepay.com.br",
      "phone": "5511987654321"
    },
    "status": "pending"
  }
}
Campo Tipo Descrição
transaction_id string ID único da transação
amount string Valor original da cobrança
net_amount number Valor líquido que você receberá
fee number Taxa cobrada pela transação
pix_code string Código PIX para pagamento
qr_code_url string URL da imagem do QR Code
expires_at string Data de expiração (ISO 8601)
status string Status: pending, paid, cancelled, expired
📊 Códigos de Status
200 Cobrança criada com sucesso
400 Dados inválidos
401 Assinatura inválida
429 Rate limit excedido

Criar Boleto Bancário

POST /orders/charge/boleto/

Cria um boleto bancário com código de barras, linha digitável e PDF para download. Permite configurar vencimento, juros e multa.

📤 Requisição

Headers
Header Valor Obrigatório
Content-Type application/json Sim
venture-signature SECRET TOKEN Sim
Body (JSON)
Exemplo de requisição
{
  "public_key": "vp_prod_91705fa6f83f2a5aef33ebc4a7fcd814",
  "customer": {
    "name": "Vitor Silva Santos",
    "document": "99999999965",
    "email": "email@provedor.com",
    "phone": "5511999887766",
    "address": {
      "street": "Rua das Flores",
      "number": "123",
      "complement": "Apt 45",
      "district": "Centro",
      "city": "São Paulo",
      "state": "SP",
      "cep": "04689070"
    }
  },
  "value": 1000,
  "due_date": "2025-12-25",
  "description": "Produto digital premium",
  "instructions": "Pagar preferencialmente via PIX. Após vencimento haverá juros e multa.",
  "interest_rate": "1.50",
  "fine_amount": 300
}
Campo Tipo Obrigatório Descrição
public_key string Sim Sua chave pública de API
customer.name string Sim Nome completo do cliente
customer.document string Sim CPF ou CNPJ do cliente (apenas números)
customer.email string Sim Email do cliente
customer.phone string Sim Telefone do cliente (com DDD)
customer.address object Sim Endereço completo do cliente
customer.address.street string Sim Nome da rua
customer.address.number string Sim Número do endereço
customer.address.complement string Não Complemento (apartamento, bloco, etc.)
customer.address.district string Sim Bairro
customer.address.city string Sim Cidade
customer.address.state string Sim Estado (sigla: SP, RJ, etc.)
customer.address.cep string Sim CEP (apenas números)
value number Sim Valor do boleto em centavos (ex: 1000 = R$ 10,00)
due_date string Sim Data de vencimento (YYYY-MM-DD)
description string Não Descrição do produto/serviço
instructions string Não Instruções de pagamento
interest_rate string Não Taxa de juros mensal (ex: "1.50" = 1,5%)
fine_amount number Não Valor da multa em centavos

📥 Resposta

Exemplo de resposta (200 OK)
{
  "success": true,
  "data": {
    "transaction_id": "VEN2689FA5D",
    "boleto_id": "855fee97-8d1a-4661-9c1c-7c9a49e880b0",
    "amount": 1000,
    "net_amount": 930,
    "fee": 70,
    "barcode": "https://api.venturepay.com/core/v5/transactions/tran_BWkPXq6TR6fA4KvQ/barcode",
    "digitable_line": "10491.10339 88000.100045 15740.747298 2 13060000001000",
    "boleto_url": "https://api.venturepay.com/1/boletos/live_cmermf3vh6cf90lm5lqkpa2h3",
    "due_date": "2025-12-25",
    "customer": {
      "name": "Vitor Silva Santos",
      "document": "99999999965",
      "email": "email@provedor.com",
      "phone": "5511999887766"
    },
    "status": "pending"
  }
}
Campo Tipo Descrição
transaction_id string ID único da transação
boleto_id string ID único do boleto
amount number Valor original do boleto em centavos
net_amount number Valor líquido que você receberá
fee number Taxa cobrada pela transação
barcode string URL da imagem do código de barras
digitable_line string Linha digitável do boleto
boleto_url string URL do PDF do boleto
due_date string Data de vencimento
status string Status: pending, paid, cancelled, expired
📊 Códigos de Status
200 Boleto criado com sucesso
400 Dados inválidos
401 Assinatura inválida
429 Rate limit excedido

🔔 Webhook de Confirmação de Pagamento

Quando o boleto é pago, enviamos um webhook para a URL configurada com as informações da transação.

Headers do Webhook
Header Valor Descrição
venture-signature SECRET_TOKEN Assinatura HMAC SHA256 do secret token
Content-Type application/json Tipo de conteúdo
Exemplo de webhook payload (boleto pago)
{
  "success": true,
  "data": {
    "transaction_id": "VEN2689FA5D",
    "boleto_id": "855fee97-8d1a-4661-9c1c-7c9a49e880b0",
    "amount": 1000,
    "net_amount": 930,
    "fee": 70,
    "barcode": "https://api.venturepay.com/core/v5/transactions/tran_BWkPXq6TR6fA4KvQ/barcode",
    "digitable_line": "10491.10339 88000.100045 15740.747298 2 13060000001000",
    "boleto_url": "https://api.venturepay.com/1/boletos/live_cmermf3vh6cf90lm5lqkpa2h3",
    "due_date": "2025-12-25",
    "customer": {
      "name": "Vitor Silva Santos",
      "document": "99999999965",
      "email": "email@provedor.com",
      "phone": "5511999887766"
    },
    "status": "paid"
  }
}
Campo Tipo Descrição
success boolean Indica se a operação foi bem-sucedida
data.transaction_id string ID único da transação
data.boleto_id string ID único do boleto
data.amount number Valor original do boleto em centavos
data.status string Status do pagamento: "paid" quando confirmado

✅ Integração Recomendada

  • • Sempre valide a assinatura HMAC antes de processar
  • • Implemente lógica idempotente para evitar processamento duplicado
  • • Verifique se o status é "paid" antes de liberar o produto/serviço
  • • Responda com status 200 para confirmar recebimento

Criar Pagamento com Cartão

POST /orders/charge/card/

Processa pagamentos com cartão de crédito com suporte a parcelamento e autenticação 3DS. Não envia webhooks - resposta é síncrona.

📤 Requisição

Headers
Header Valor Obrigatório
Content-Type application/json Sim
venture-signature SECRET TOKEN Sim
Body (JSON) - Pagamento Simples
Exemplo de requisição (sem 3DS)
{
  "public_key": "vp_prod_33ba99c7a95b9ea57e1c1d9f4490f469",
  "customer": {
    "name": "João Silva Santos",
    "document": "12345678901",
    "email": "joao@exemplo.com",
    "phone": "5511999887766",
    "address": {
      "street": "Rua das Flores",
      "number": "123",
      "complement": "Apt 45",
      "district": "Centro",
      "city": "São Paulo",
      "state": "SP",
      "cep": "01234567"
    }
  },
  "card": {
    "number": "4111111111111111",
    "holder_name": "JOAO SILVA SANTOS",
    "exp_month": 12,
    "exp_year": 2028,
    "cvv": "123"
  },
  "value": 2500,
  "installments": 12,
  "description": "Produto digital premium"
}
Body (JSON) - Com Autenticação 3DS
Exemplo de requisição (com 3DS)
{
  "public_key": "vp_prod_91705fa6f83f2a5aef33ebc4a7fcd814",
  "customer": {
    "name": "João Silva Santos",
    "document": "11698939965",
    "email": "joao@email.com",
    "phone": "5511999887766",
    "address": {
      "street": "Rua das Flores",
      "number": "123",
      "complement": "Apt 45",
      "district": "Centro",
      "city": "São Paulo",
      "state": "SP",
      "cep": "01234567"
    }
  },
  "card": {
    "number": "4111111111111111",
    "holder_name": "JOAO SILVA SANTOS",
    "exp_month": 12,
    "exp_year": 2028,
    "cvv": "123"
  },
  "value": 10000,
  "installments": 3,
  "description": "Produto digital premium",
  "threeds_data": {
    "cavv": "AAABCZIhcQAAAABZlyFxAAAAAAA=",
    "xid": "MDAwMDAwMDAwMDAwMDAwMzIyNzY=",
    "eci": "05",
    "version": "2",
    "referenceId": "3ac7caa7-aa42-2663-791b-2ac05a542c4a",
    "card_brand": "visa"
  }
}
Campo Tipo Obrigatório Descrição
public_key string Sim Sua chave pública de API
customer object Sim Dados completos do cliente (igual ao boleto)
card.number string Sim Número do cartão (sem espaços)
card.holder_name string Sim Nome do portador (como no cartão)
card.exp_month number Sim Mês de validade (1-12)
card.exp_year number Sim Ano de validade (4 dígitos)
card.cvv string Sim Código de segurança (3-4 dígitos)
value number Sim Valor em centavos (ex: 2500 = R$ 25,00)
installments number Sim Número de parcelas (1-12)
description string Não Descrição da compra
threeds_data object Não Dados de autenticação 3DS/VBV

⚠️ Segurança e 3DS

  • • Use sempre HTTPS e seja PCI DSS compliant
  • • Para transações sem VBV/3DS é necessária autorização prévia
  • • Bandeiras como Visa/Mastercard podem exigir 3DS obrigatório
  • • Resposta é síncrona - não há webhook

📥 Exemplos de Resposta

✅ Pagamento Aprovado
Resposta - Aprovado (200 OK)
{
  "success": true,
  "data": {
    "transaction_id": "VEN240D45E8",
    "external_id": "CARD_68ADE96E8F3F1",
    "amount": 2500,
    "amount_charged": 2500,
    "net_amount": 1212,
    "fee": 588,
    "fixed_fee": 200,
    "reserve_amount": 500,
    "total_venture_amount": 1288,
    "installments": 12,
    "status": "approved",
    "payment_status": "paid",
    "reason_message": "Transação aprovada com sucesso",
    "authorization_code": null,
    "acquirer_tid": "4074927556",
    "acquirer_nsu": "4074927556",
    "masked_card": null,
    "card_brand": "Elo",
    "customer": {
      "name": "João Silva Santos",
      "document": "12345678901",
      "email": "joao@exemplo.com",
      "phone": "5511999887766"
    },
    "is_fraud": false,
    "antifraud_score": "very_low",
    "created_at": "2025-08-26 14:05:59"
  }
}
❌ Cartão Recusado
Resposta - Recusado (200 OK)
{
  "success": true,
  "data": {
    "transaction_id": "VENA20813D5",
    "external_id": "CARD_68ADE00D6CD1D",
    "amount": 1000,
    "amount_charged": 1099,
    "net_amount": 822,
    "fee": 57,
    "reserve_amount": 220,
    "total_venture_amount": 277,
    "installments": 3,
    "status": "failed",
    "payment_status": "failed",
    "reason_message": "Pagamento reprovado oriente a contator o banco/emissor",
    "authorization_code": null,
    "acquirer_tid": "4074879295",
    "acquirer_nsu": "4074879295",
    "masked_card": null,
    "card_brand": "Visa",
    "customer": {
      "name": "João Silva Santos",
      "document": "12345678901",
      "email": "joao@exemplo.com",
      "phone": "5511999887766"
    },
    "is_fraud": false,
    "antifraud_score": null,
    "created_at": "2025-08-26 13:25:56"
  }
}
🛡️ Suspeita de Fraude
Resposta - Fraude (200 OK)
{
  "success": true,
  "data": {
    "transaction_id": "VENA20813D5",
    "external_id": "CARD_68ADE00D6CD1D",
    "amount": 1000,
    "amount_charged": 1099,
    "net_amount": 822,
    "fee": 57,
    "reserve_amount": 220,
    "total_venture_amount": 277,
    "installments": 3,
    "status": "fraud",
    "payment_status": "failed",
    "reason_message": "Pagamento aprovado pelo banco emissor",
    "authorization_code": null,
    "acquirer_tid": "4074879295",
    "acquirer_nsu": "4074879295",
    "masked_card": null,
    "card_brand": "Visa",
    "customer": {
      "name": "João Silva Santos",
      "document": "12345678901",
      "email": "joao@exemplo.com",
      "phone": "5511999887766"
    },
    "is_fraud": true,
    "antifraud_score": "moderated",
    "created_at": "2025-08-26 13:25:56"
  }
}
Campo Tipo Descrição
transaction_id string ID único da transação
external_id string ID externo da transação
amount number Valor original em centavos
amount_charged number Valor cobrado (com juros se parcelado)
net_amount number Valor líquido que você receberá
status string Status: approved, failed, fraud
payment_status string Status do pagamento: paid, failed
card_brand string Bandeira do cartão
is_fraud boolean Indica suspeita de fraude
antifraud_score string Score antifraude: very_low, low, moderate, high
reserve_amount number Valor da reserva em centavos
total_venture_amount number Total retido pela Venture
acquirer_tid string TID da adquirente
acquirer_nsu string NSU da adquirente
📊 Códigos de Status
200 Processamento concluído
400 Dados do cartão inválidos
401 Assinatura inválida
429 Rate limit excedido

Consultar Cobrança

GET /orders/?public_key={public_key}&transaction_id={transaction_id}

Consulta o status atual de uma cobrança específica.

Exemplo de requisição
curl -X GET 'https://api.venturepay.com.br/v1/orders/?public_key={public_key}&transaction_id=VEN97F8E4D3' \
  -H 'venture-signature: secret_token'

Consultar Saldo

GET /balance/

Consulta o saldo atual da sua conta VenturePay.

Exemplo de resposta
{
  "success": true,
  "data": {
    "available_balance": 1234.56,
    "pending_balance": 567.89,
    "total_balance": 1802.45,
    "currency": "BRL"
  }
}

Webhooks

Configuração de Webhooks

Webhooks permitem que você receba notificações automáticas quando eventos ocorrem em suas transações. Configure URLs para receber dados em tempo real.

📡 Como Funciona

  1. 1Configure uma URL de webhook na sua conta
  2. 2Quando um evento ocorre, enviamos um POST para sua URL
  3. 3Seu sistema responde com status 200 para confirmar recebimento
  4. 4Se não recebermos confirmação, tentamos novamente

Eventos Disponíveis

payment_paid

Enviado quando um pagamento é aprovado e o valor é creditado na sua conta.

payment_created

Enviado quando uma nova cobrança PIX é criada e está aguardando pagamento.

payment_cancelled

Enviado quando um pagamento é cancelado antes de ser processado.

payment_expired

Enviado quando um pagamento expira sem ser processado (após 24 horas).

📦 Estrutura do Payload

Exemplo de webhook payload
{
  "success": true,
  "data": {
    "transaction_id": "VEN9C6FA1E7",
    "amount": "100.00",
    "net_amount": 94.00,
    "fee": 6.00,
    "pix_code": "00020101021226820014br.gov.bcb.pix...",
    "qr_code_url": "https://api.venturepay.com.br/qrcode/...",
    "expires_at": "2025-06-23T23:49:11Z",
    "customer": {
      "name": "Maria Silva Santos",
      "document": "12345678910",
      "email": "cliente@exemplo.com",
      "phone": "5511987654321"
    },
    "status": "paid"
  },
  "event_type": "payment_paid",
  "webhook_id": 123,
  "timestamp": 1640995200
}

Segurança dos Webhooks

Para garantir que os webhooks são legítimos, validamos cada requisição com assinatura no header X-VenturePay-Signature.

🔐 Headers de Segurança

Header Descrição Exemplo
X-VenturePay-Signature Assinatura HMAC SHA256 sha256=abc123...
X-VenturePay-Event Tipo do evento payment_paid
X-VenturePay-Webhook-Id ID do webhook 123
X-VenturePay-Timestamp Timestamp Unix 1640995200
Validação HMAC (PHP)
// PHP - Validação de webhook
$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_VENTUREPAY_SIGNATURE'];
$webhook_secret = 'seu-token-de-validacao-aqui';

$expected = 'sha256=' . hash_hmac('sha256', $payload, $webhook_secret);

if (hash_equals($expected, $signature)) {
    // Webhook válido - processar dados
    $data = json_decode($payload, true);
    
    if ($data['event_type'] === 'payment_paid') {
        // Pagamento foi aprovado
        $transaction_id = $data['data']['transaction_id'];
        // Atualizar status na sua base de dados
    }
} else {
    // Webhook inválido - rejeitar
    http_response_code(401);
    exit('Unauthorized');
}

⚠️ Importante sobre Segurança

  • • Sempre valide a assinatura HMAC antes de processar
  • • Use o token de API como secret key para validação
  • • Implemente idempotência para evitar processamento duplicado
  • • Configure HTTPS para receber webhooks
  • • Responda com status 200 para confirmar recebimento

Tratamento de Erros

Nossa API retorna códigos de status HTTP padronizados e mensagens de erro estruturadas:

Estrutura de Erro

Exemplo de resposta de erro
{
  "success": false,
  "error": {
    "code": "INVALID_SIGNATURE",
    "message": "Assinatura HMAC inválida",
    "details": "Verifique se a secret key está correta e se o body está sendo assinado corretamente"
  }
}

Códigos de Status HTTP

200 OK

Requisição processada com sucesso

400 Bad Request

Dados inválidos ou faltando campos obrigatórios

401 Unauthorized

Assinatura HMAC inválida ou token inexistente

404 Not Found

Recurso não encontrado (ex: transaction_id inválido)

429 Too Many Requests

Rate limit excedido

500 Internal Server Error

Erro interno do servidor

Códigos de Erro Comuns

INVALID_SIGNATURE

Assinatura HMAC inválida

MISSING_FIELD

Campo obrigatório não enviado

INVALID_CPF

CPF inválido ou malformado

INVALID_EMAIL

Email inválido

AMOUNT_TOO_LOW

Valor mínimo é R$ 1,00

TRANSACTION_NOT_FOUND

ID de transação não encontrado

💡 Dicas para Depuração

  • Sempre verifique o campo error.code para identificar o tipo de erro
  • Use error.details para informações específicas sobre como corrigir
  • Implemente retry exponencial para erros 5xx (temporários)
  • Não implemente retry para erros 4xx (problemas na requisição)

Exemplos de Código

PHP

Exemplo completo em PHP
publicKey = $publicKey;
        $this->secretKey = $secretKey;
    }

    public function createCharge($data) {
        $data['public_key'] = $this->publicKey;
        $body = json_encode($data);
        
        $signature = hash_hmac('sha256', $body, $this->secretKey);
        
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $this->baseUrl . 'orders/charge/');
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json',
            'venture-signature: ' . $signature
        ]);
        
        $response = curl_exec($ch);
        curl_close($ch);
        
        return json_decode($response, true);
    }
}

// Uso
$api = new VenturePayAPI(
    'vp_prod_ce2d9ce1f7c213eaade842738a4e4',
    '1de97abb11146a6c5aa3f84f811da866c211720cadb58ccca41398c6ddf4bcd8'
);

$charge = $api->createCharge([
    'customer' => [
        'name' => 'Maria Silva Santos',
        'cpf' => '12345678910',
        'email' => 'cliente@exemplo.com',
        'phone' => '5511987654321'
    ],
    'value' => 100,
    'send_email' => true
]);

echo json_encode($charge, JSON_PRETTY_PRINT);
?>

JavaScript (Node.js)

Exemplo em Node.js
const crypto = require('crypto');
const axios = require('axios');

class VenturePayAPI {
    constructor(publicKey, secretKey) {
        this.publicKey = publicKey;
        this.secretKey = secretKey;
        this.baseUrl = 'https://api.venturepay.com.br/v1/';
    }

    async createCharge(data) {
        data.public_key = this.publicKey;
        const body = JSON.stringify(data);
        
        const signature = crypto
            .createHmac('sha256', this.secretKey)
            .update(body)
            .digest('hex');

        try {
            const response = await axios.post(
                this.baseUrl + 'orders/charge/',
                body,
                {
                    headers: {
                        'Content-Type': 'application/json',
                        'venture-signature': signature
                    }
                }
            );
            return response.data;
        } catch (error) {
            throw new Error(error.response?.data?.error?.message || 'API Error');
        }
    }
}

// Uso
const api = new VenturePayAPI(
    'vp_prod_ce2d9ce1f7c213eaade842738a4e4',
    '1de97abb11146a6c5aa3f84f811da866c211720cadb58ccca41398c6ddf4bcd8'
);

api.createCharge({
    customer: {
        name: 'Maria Silva Santos',
        cpf: '12345678910',
        email: 'cliente@exemplo.com',
        phone: '5511987654321'
    },
    value: 100,
    send_email: true
}).then(charge => {
    console.log('Cobrança criada:', charge);
}).catch(error => {
    console.error('Erro:', error.message);
});

Python

Exemplo em Python
import requests
import json
import hmac
import hashlib

class VenturePayAPI:
    def __init__(self, public_key, secret_key):
        self.public_key = public_key
        self.secret_key = secret_key
        self.base_url = 'https://api.venturepay.com.br/v1/'

    def create_charge(self, data):
        data['public_key'] = self.public_key
        body = json.dumps(data, separators=(',', ':'))
        
        signature = hmac.new(
            self.secret_key.encode(),
            body.encode(),
            hashlib.sha256
        ).hexdigest()
        
        headers = {
            'Content-Type': 'application/json',
            'venture-signature': signature
        }
        
        response = requests.post(
            self.base_url + 'orders/charge/',
            data=body,
            headers=headers
        )
        
        return response.json()

# Uso
api = VenturePayAPI(
    'vp_prod_ce2d9ce1f7c213eaade842738a4e4',
    '1de97abb11146a6c5aa3f84f811da866c211720cadb58ccca41398c6ddf4bcd8'
)

charge = api.create_charge({
    'customer': {
        'name': 'Maria Silva Santos',
        'cpf': '12345678910',
        'email': 'cliente@exemplo.com',
        'phone': '5511987654321'
    },
    'value': 100,
    'send_email': True
})

print(json.dumps(charge, indent=2))

Suporte e Contato

Precisa de Ajuda?

Nossa equipe de desenvolvedores está sempre pronta para ajudar com sua integração.