v1.0 · Sandbox Ativo

API PagoraPay
para Integrações

Integre geração de boletos e PIX diretamente no seu sistema. Receba notificações automáticas de pagamento via webhook.

Base URL https://pagorapay.com.br/api/v1
Formato JSON
Autenticação Bearer Token
Visão Geral
Como funciona a integração

A API PagoraPay permite que seu sistema (ERP, e-commerce, sistema de gestão) gere cobranças e receba baixas automáticas sem precisar se integrar diretamente com bancos ou processadoras de pagamento.

Seu Sistema
ERP / E-commerce
API PagoraPay
/erp/gerar_cobranca
PagoraPay Bank
Boleto + PIX
Seu Sistema
recebe a baixa
Webhook PagoraPay
COBRANCA_PAGA
Cliente Paga
Boleto ou PIX
Zero configuração adicional. Você só precisa da sua API Key PagoraPay. Todo o resto é gerenciado automaticamente pela plataforma.
Autenticação
Como autenticar suas requisições

Todas as requisições precisam do header Authorization com sua API Key. Crie uma chave para cada sistema integrado em Painel → API & Integrações → Chaves API.

Authorization : Bearer pp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
exemplo — curl
curl -X POST https://pagorapay.com.br/api/v1/erp/gerar_cobranca.php \
  -H "Authorization: Bearer pp_SUA_CHAVE_AQUI" \
  -H "Content-Type: application/json" \
  -d '{"nome": "João Silva", ...}'
Nunca exponha sua API Key. Ela dá acesso total à sua conta. Use variáveis de ambiente no seu servidor para armazená-la com segurança.

Se a autenticação falhar, a API retornará:

resposta — 401 Unauthorized
{
  "sucesso": false,
  "mensagem": "API Key inválida."
}
Erros
Formato padrão de respostas de erro

Todas as respostas seguem o mesmo formato, com o campo sucesso indicando o resultado:

formato padrão
// Sucesso
{
  "sucesso": true,
  "mensagem": "Cobrança gerada com sucesso.",
  "dados": { /* objeto com os dados */ }
}

// Erro
{
  "sucesso": false,
  "mensagem": "Descrição do erro."
}
Gerar Cobrança
Cria uma cobrança que aceita pagamento via Boleto ou PIX
POST /erp/gerar_cobranca.php

Cria um boleto bancário híbrido que também aceita pagamento via PIX. O campo id_externo é o identificador do pedido no seu sistema — use-o para correlacionar a cobrança quando receber o webhook de pagamento.

Parâmetros do Body (JSON)
Campo Tipo Req. Descrição
nome string sim Nome completo do cliente pagador
cpf_cnpj string sim CPF ou CNPJ — apenas números
valor number sim Valor em reais. Mínimo: 5.00
vencimento string sim Data de vencimento no formato YYYY-MM-DD
id_externo string sim ID único do pedido no seu sistema. Não pode se repetir.
descricao string não Descrição que aparece no boleto
email string não E-mail do cliente
celular string não Celular do cliente — apenas números
multa number não Percentual de multa após vencimento. Ex: 2.00
juros number não Percentual de juros ao mês. Ex: 1.00
Exemplo de Requisição
json body
{
  "nome":       "João Silva",
  "cpf_cnpj":   "12345678901",
  "valor":      150.00,
  "vencimento": "2026-03-10",
  "id_externo": "PED-001234",
  "descricao":  "Pedido #1234",
  "email":      "joao@email.com",
  "multa":      2.00,
  "juros":      1.00
}
Resposta de Sucesso — HTTP 200
json response
{
  "sucesso":  true,
  "mensagem": "Cobrança gerada com sucesso.",
  "dados": {
    "id_pagorapay":   89,          // ID interno PagoraPay
    "id_externo":    "PED-001234", // seu ID de pedido
    "id_transacao":      "pay_abc123", // ID interno da transação
    "link_pagamento": "https://pagorapay.com.br/pagar.php?id=pay_abc123",
    "link_boleto":    "https://...",
    "linha_digitavel": "46191.10000 00000.000000 12063.261015 6 13860000002000", // linha digitável do boleto
    "codigo_barras":   "46196138600000020001110000000000001206326101",   // código de barras
    "pix_qrcode":    "base64...",   // imagem QR Code
    "pix_copia_cola": "00020101...", // código copia e cola
    "valor_bruto":   150.00,
    "valor_taxa":    1.99,
    "valor_liquido": 148.01,
    "vencimento":    "2026-03-10",
    "status":        "AGUARDANDO"
  }
}
O campo pix_qrcode contém a imagem em Base64. Para exibir: <img src="data:image/png;base64,VALOR_AQUI">
Consultar Cobrança
Verifica o status de uma cobrança pelo ID do seu sistema
GET /erp/consultar_cobranca.php?id_externo=PED-001234

Use este endpoint para consultar o status de uma cobrança usando o mesmo id_externo que você enviou na criação.

ParâmetroTipoReq.Descrição
id_externo string sim O ID do pedido que você usou na criação
Status Possíveis
PENDENTECobrança gerada, aguardando pagamento
PAGOPagamento confirmado — boleto ou PIX
CANCELADOCobrança foi cancelada
resposta
{
  "sucesso":  true,
  "mensagem": "Cobrança encontrada.",
  "dados": {
    "id_pagorapay":    89,
    "id_externo":     "PED-001234",
    "nome_cliente":   "João Silva",
    "valor_bruto":    150.00,
    "valor_liquido":  148.01,
    "status":         "PAGO",
    "data_vencimento":"2026-03-10",
    "data_pagamento": "2026-02-25 14:30:00"
  }
}
Cancelar Cobrança
Cancela uma cobrança pendente pelo ID do seu sistema
POST /erp/cancelar_cobranca.php

Cancela uma cobrança usando o mesmo id_externo informado na criação. Apenas cobranças com status AGUARDANDO podem ser canceladas. O cancelamento é feito simultaneamente na PagoraPay e no Asaas.

ParâmetroTipoReq.Descrição
id_externo string sim O ID do pedido usado na criação da cobrança
Apenas cobranças com status AGUARDANDO podem ser canceladas. Cobranças já pagas ou vencidas retornarão erro.
requisição
curl -X POST https://pagorapay.com.br/api/v1/erp/cancelar_cobranca.php \\
  -H "Authorization: Bearer pp_sua_chave_aqui" \\
  -H "Content-Type: application/json" \\
  -d         apos;{"id_externo":"PED-001234"}        apos;
resposta — sucesso
{
  "sucesso":  true,
  "mensagem": "Cobrança cancelada com sucesso.",
  "dados": {
    "id_externo":       "PED-001234",
    "id_pagorapay":    89,
    "cancelado_gateway": true
  }
}
resposta — erro
{
  "sucesso":  false,
  "mensagem": "Apenas cobranças com status AGUARDANDO podem ser canceladas. Status atual: PAGO"
}
Webhook de Pagamento
Notificação automática enviada ao seu sistema quando um boleto é pago

Quando um boleto gerado pela API for pago, a PagoraPay enviará automaticamente um POST para a URL que você configurar no painel. Configure em Painel → API & Integrações → Chaves API, clicando no ícone de webhook da chave desejada.

Evento: COBRANCA_PAGA
payload enviado — POST
{
  "evento":          "COBRANCA_PAGA",
  "id_externo":      "PED-001234",   // seu ID — use para localizar o pedido
  "id_pagorapay":    89,
  "id_transacao":        "pay_abc123",
  "valor_bruto":     150.00,
  "valor_liquido":   148.01,
  "data_pagamento":  "2026-02-25T14:30:00-03:00",
  "forma_pagamento": "BOLETO",         // BOLETO ou PIX
  "status":          "PAGO",
  "parceiro_id":     5
}
Seu endpoint deve responder com HTTP 200. Caso contrário, a PagoraPay considerará a entrega como falha. Use o campo id_externo para identificar o pedido e evitar processamento duplicado.
Exemplo de receptor em PHP
php — seu servidor
<?php
// seu-sistema.com/webhook/pagorapay

$payload = json_decode(file_get_contents('php://input'), true);

if ($payload['evento'] === 'COBRANCA_PAGA') {
    $id_pedido = $payload['id_externo']; // ex: "PED-001234"
    $valor     = $payload['valor_bruto'];
    
    // Localize o pedido no seu banco e marque como pago
    marcarPedidoComoPago($id_pedido, $valor);
}

// OBRIGATÓRIO: responder 200
http_response_code(200);
echo 'ok';
Configurar Webhook
Como cadastrar a URL de notificação no painel
  1. Acesse o Painel PagoraPay
  2. Navegue até API & Integrações → Chaves API
  3. Clique no ícone de webhook da chave desejada
  4. Clique em Salvar
  5. Use o botão Testar para verificar se seu servidor está respondendo corretamente
O botão Testar envia um evento TESTE_WEBHOOK para sua URL. Seu servidor deve responder com HTTP 200. Verifique os logs do seu sistema para confirmar o recebimento.
Exemplos de Código
Integração completa em diferentes linguagens
bash — curl
# Gerar cobrança
curl -X POST https://pagorapay.com.br/api/v1/erp/gerar_cobranca.php \
  -H "Authorization: Bearer pp_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "nome": "João Silva",
    "cpf_cnpj": "12345678901",
    "valor": 150.00,
    "vencimento": "2026-03-10",
    "id_externo": "PED-001234",
    "descricao": "Pedido #1234"
  }'

# Consultar status
curl -X GET \
  "https://pagorapay.com.br/api/v1/erp/consultar_cobranca.php?id_externo=PED-001234" \
  -H "Authorization: Bearer pp_SUA_CHAVE"
php
<?php

class PagoraPay {
    private $apiKey;
    private $baseUrl = 'https://pagorapay.com.br/api/v1';

    public function __construct($apiKey) {
        $this->apiKey = $apiKey;
    }

    public function gerarCobranca($dados) {
        return $this->request('POST', '/erp/gerar_cobranca.php', $dados);
    }

    public function consultarCobranca($idExterno) {
        return $this->request('GET', '/erp/consultar_cobranca.php?id_externo=' . $idExterno);
    }

    private function request($metodo, $endpoint, $dados = []) {
        $ch = curl_init($this->baseUrl . $endpoint);
        curl_setopt_array($ch, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_CUSTOMREQUEST  => $metodo,
            CURLOPT_HTTPHEADER     => [
                'Authorization: Bearer ' . $this->apiKey,
                'Content-Type: application/json'
            ]
        ]);
        if (!empty($dados)) {
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($dados));
        }
        $response = json_decode(curl_exec($ch), true);
        curl_close($ch);
        return $response;
    }
}

// Uso
$pp = new PagoraPay('pp_SUA_CHAVE');

$result = $pp->gerarCobranca([
    'nome'       => 'João Silva',
    'cpf_cnpj'   => '12345678901',
    'valor'      => 150.00,
    'vencimento' => '2026-03-10',
    'id_externo' => 'PED-001234'
]);

if ($result['sucesso']) {
    echo $result['dados']['link_pagamento'];
}
python
import requests

class PagoraPay:
    BASE_URL = "https://pagorapay.com.br/api/v1"

    def __init__(self, api_key):
        self.headers = {
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json"
        }

    def gerar_cobranca(self, dados):
        r = requests.post(
            self.BASE_URL + "/erp/gerar_cobranca.php",
            json=dados,
            headers=self.headers
        )
        return r.json()

    def consultar_cobranca(self, id_externo):
        r = requests.get(
            self.BASE_URL + f"/erp/consultar_cobranca.php?id_externo={id_externo}",
            headers=self.headers
        )
        return r.json()


# Uso
pp = PagoraPay("pp_SUA_CHAVE")

result = pp.gerar_cobranca({
    "nome":       "João Silva",
    "cpf_cnpj":   "12345678901",
    "valor":      150.00,
    "vencimento": "2026-03-10",
    "id_externo": "PED-001234"
})

if result["sucesso"]:
    print("Link:", result["dados"]["link_pagamento"])
javascript — node.js / fetch
const BASE_URL = 'https://pagorapay.com.br/api/v1';
const API_KEY  = 'pp_SUA_CHAVE';

async function gerarCobranca(dados) {
  const res = await fetch(BASE_URL + '/erp/gerar_cobranca.php', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(dados)
  });
  return res.json();
}

async function consultarCobranca(idExterno) {
  const res = await fetch(
    BASE_URL + `/erp/consultar_cobranca.php?id_externo=${idExterno}`,
    { headers: { 'Authorization': `Bearer ${API_KEY}` } }
  );
  return res.json();
}

// Uso
const result = await gerarCobranca({
  nome:       'João Silva',
  cpf_cnpj:   '12345678901',
  valor:      150.00,
  vencimento: '2026-03-10',
  id_externo: 'PED-001234'
});

if (result.sucesso) {
  console.log('Link:', result.dados.link_pagamento);
}
Fluxo Completo
Passo a passo de uma integração do início ao fim
  1. 1
    Obtenha sua API Key no painel
    Acesse Painel → API & Integrações → Chaves API e crie uma chave para cada integração
  2. 2
    Configure o Webhook
    Na aba Webhooks, cadastre a URL do seu endpoint e teste a conexão.
  3. 3
    Chame /erp/gerar_cobranca.php ao criar um pedido
    Passe o id_externo com o ID do pedido no seu sistema. Guarde o link_pagamento para exibir ao cliente.
  4. 4
    Receba o webhook quando o cliente pagar
    A PagoraPay enviará COBRANCA_PAGA com o id_externo. Use-o para localizar e atualizar o pedido no seu sistema.
  5. 5
    Responda HTTP 200 e processe a baixa
    Confirme o recebimento respondendo 200 e marque o pedido como pago no seu sistema.
Dica: Sempre valide o id_externo antes de processar — isso evita baixas duplicadas caso o webhook seja enviado mais de uma vez.