xcob Developer Portal
Integre pagamentos PIX em seus aplicativos com a API XCOB. Geração de QR Code, Cash Out e confirmação de pagamentos em segundos.
Autenticação
Todas as requisições devem incluir sua api-key no corpo da requisição. Obtenha sua chave no painel xcob.
Base URL
Todas as requisições são feitas para o endpoint base da API xcob.
Cash In — Gerar PIX
Gere um QR Code PIX para receber pagamentos. A requisição retorna o código PIX e o QR Code em base64.
Parâmetros da Requisição
{
"amount": 100,
"client": {
"name": "João Silva",
"document": "12345678901",
"telefone": "11999999999",
"email": "joao@email.com"
},
"api-key": "sua-api-key-aqui"
}
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| amount | number | ✓ Sim | Valor em reais inteiros. Ex: 100 = R$ 100,00 |
| client.name | string | ✓ Sim | Nome completo do pagador |
| client.document | string | ✓ Sim | CPF ou CNPJ sem formatação (só números) |
| client.telefone | string | Opcional | Telefone com DDD sem formatação |
| client.email | string | Opcional | Email do pagador |
| api-key | string | ✓ Sim | Sua chave de API xcob |
Exemplo — PHP
<?php // Nunca inclua a api-key diretamente no frontend // Sempre faça esta chamada pelo seu backend (servidor) $data = [ 'amount' => 100, 'client' => [ 'name' => 'João Silva', 'document' => '12345678901', 'telefone' => '11999999999', 'email' => 'joao@email.com', ], 'api-key' => 'sua-api-key-aqui', ]; $ch = curl_init('https://api.xcob.rest/v1/gateway/'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode($data), CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], ]); $response = json_decode(curl_exec($ch), true); curl_close($ch); // Exibe o código PIX para o cliente copiar echo $response['paymentCode']; // Guarde o idTransaction para consultar o status via webhook $idTransaction = $response['idTransaction']; ?>
Exemplo — Python
import requests # Nunca exponha a api-key no frontend response = requests.post( 'https://api.xcob.rest/v1/gateway/', json={ 'amount': 100, 'client': { 'name': 'João Silva', 'document': '12345678901', 'email': 'joao@email.com', }, 'api-key': 'sua-api-key-aqui', } ) data = response.json() print(data['paymentCode']) print(data['idTransaction']) # Guarde para consultar status
Cash Out — Transferência PIX
Realize transferências via PIX para contas de terceiros. Requer saldo disponível na sua conta xcob.
Parâmetros da Requisição
{
"amount": 50.00,
"pixKeyType": "CPF",
"pixKey": "12345678901",
"beneficiaryName": "Maria Souza",
"beneficiaryDocument": "12345678901",
"api-key": "sua-api-key-aqui"
}
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| amount | number | ✓ Sim | Valor em reais. Ex: 50.00 = R$ 50,00 |
| pixKeyType | string | ✓ Sim | Tipo da chave PIX: CPF, CNPJ, EMAIL, TELEFONE, EVP |
| pixKey | string | ✓ Sim | Chave PIX do beneficiário (sem formatação para CPF/CNPJ) |
| beneficiaryName | string | ✓ Sim | Nome completo do beneficiário |
| beneficiaryDocument | string | ✓ Sim | CPF ou CNPJ do beneficiário sem formatação |
| api-key | string | ✓ Sim | Sua chave de API xcob |
Resposta de Sucesso
{
"status": "success",
"message": "Transferência realizada com sucesso",
"idTransaction": "52fc5262-4063-4900-933b-55e69850",
"amount": 50.00
}
Webhook — Consultar Status
Consulte o status de um pagamento usando o idTransaction retornado no Cash In.
PAID_OUT. Pare as consultas após a confirmação para não sobrecarregar a API.Parâmetros da Requisição
{
"idtransaction": "52fc5262-4063-4900-933b-55e69850"
}
Possíveis valores de status
| Status | Descrição |
|---|---|
| PAID_OUT | Pagamento confirmado. Libere o produto/serviço. |
| WAITING_FOR_APPROVAL | Aguardando pagamento. Continue o polling. |
| EXPIRED | PIX expirado. Gere um novo se necessário. |
Exemplo de polling — JavaScript
async function checkPayment(idTransaction) { const response = await fetch('https://api.xcob.rest/v1/webhook/', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ idtransaction: idTransaction }) }); const data = await response.json(); if (data.status === 'PAID_OUT') { // Pagamento confirmado — libere o produto console.log('Pago!'); } else if (data.status === 'WAITING_FOR_APPROVAL') { // Aguarda e tenta novamente em 2 segundos setTimeout(() => checkPayment(idTransaction), 2000); } }
Respostas da API
Referência completa dos códigos de status e exemplos de resposta.
{
"status": "success",
"message": "ok",
"paymentCode": "00020101021226790014br.gov.bcb.pix...",
"idTransaction": "52fc5262-4063-4900-933b-55e69850",
"paymentCodeBase64": "iVBORw0KGgoAAAANSUhEUgAA..."
}
// paymentCode → string PIX para copiar e colar no app do banco
// idTransaction → use para consultar status via /webhook/
// paymentCodeBase64 → imagem QR Code em base64 (PNG), exiba com:
// <img src="data:image/png;base64,{paymentCodeBase64}">
{
"status": "error",
"message": "API Key inválida ou sem permissão"
}
// Verifique se a api-key está correta e ativa no painel xcob
{
"status": "error",
"message": "Parâmetros inválidos ou ausentes"
}
// Verifique se todos os campos obrigatórios foram enviados
// e se o Content-Type está como application/json
Testador Interativo
Teste a API diretamente aqui. Preencha os campos e clique em Testar para ver a resposta em tempo real.
Cash In — Gerar PIX
QR Code PIX gerado