Documentação da API
Bem-vindo à documentação da API PayZu Plus. Nossa API oferece um conjunto robusto de endpoints para integrar funcionalidades de pagamento e assinatura em suas aplicações.
http://api.payzuplus.com.br
Todas as requisições à API devem incluir sua chave de API no cabeçalho da requisição.
X-Api-Key: sua_chave_api
Nossa API PIX permite gerar códigos de pagamento PIX e monitorar seus status. Perfeita para pagamentos imediatos e seguros no Brasil.
Gere um novo código de pagamento PIX com informações opcionais do cliente.
/pix/create
{
"amount": 100.00, // Valor do pagamento (obrigatório)
"webhook": "https://...", // URL para receber notificações (obrigatório)
"customer": { // Dados do cliente (opcional)
"nome": "João Silva",
"email": "[email protected]",
"document": "123.456.789-00",
"telefone": "+5511999999999"
}
}
100.00,
'webhook' => 'https://seu-site.com.br/webhook',
'customer' => [
'nome' => 'João Silva',
'email' => '[email protected]',
'document' => '123.456.789-00',
'telefone' => '+5511999999999'
]
];
$ch = curl_init('http://api.payzuplus.com.brpix/create');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-Api-Key: ' . $apiKey
]
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
print_r($result);
Resposta de Sucesso (200)
{
"id": "PIX123456789",
"qrCodeText": "00020126580014br.gov.bcb.pix0136123e4567-e89b-12d3-a456-426614174000",
"qrCodeUrl": "https://api.qrserver.com/create-qr-code/?data=00020126580014br.gov.bcb.pix",
"status": "PENDING"
}
Resposta de Erro (400)
{
"error": "CPF inválido",
"details": "DETALHES DO ERRO"
}
Consulte o status atual de um pagamento PIX e obtenha detalhes da transação. Use este endpoint para verificar se um pagamento foi recebido e obter informações detalhadas sobre a transação.
/pix/status
{
"id": "PIX123456789" // ID da transação PIX (obrigatório)
}
'PIX123456789'
];
$ch = curl_init('http://api.payzuplus.com.brpix/status');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-Api-Key: ' . $apiKey
]
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
print_r($result);
O status da transação pode ser:
{
"transaction": {
"id": "PIX123456789",
"status": "completed",
"created_at": "2024-02-19 10:00:00",
"updated_at": "2024-02-19 10:05:00",
"qr_code": {
"text": "00020126580014br.gov.bcb.pix0136123e4567-e89b-12d3-a456-426614174000",
"url": "https://api.qrserver.com/create-qr-code/?data=00020126580014br.gov.bcb.pix"
}
},
"venda": {
"status": "aprovado",
"valor": 100.00,
"created_at": "2024-02-19 10:00:00",
"comprador": {
"nome": "João Silva",
"email": "[email protected]"
}
}
}
Crie e gerencie assinaturas recorrentes com cobrança imediata ou com período de teste. Nossa API de assinaturas oferece flexibilidade para diferentes modelos de negócio, permitindo tanto cobranças imediatas quanto períodos de teste gratuitos com conversão automática.
Crie uma assinatura com cobrança imediata. A primeira cobrança será processada no momento da criação, e as cobranças subsequentes seguirão a frequência do plano escolhido.
/plan/create-signature
{
"plan_id": "PLAN123", // ID do plano (obrigatório)
"customer": { // Dados do cliente (obrigatório)
"name": "João Silva",
"identity": "123.456.789-00",
"email": "[email protected]",
"phone": "+5511999999999"
},
"payment": { // Dados do cartão (obrigatório)
"card_number": "4111111111111111",
"security_code": "123",
"expiration_date": "12/2025",
"card_holder_name": "JOAO SILVA"
},
"send_confirmation": true // Enviar email de confirmação (opcional)
}
'PLAN123',
'customer' => [
'name' => 'João Silva',
'identity' => '123.456.789-00',
'email' => '[email protected]',
'phone' => '+5511999999999'
],
'payment' => [
'card_number' => '4111111111111111',
'security_code' => '123',
'expiration_date' => '12/2025',
'card_holder_name' => 'JOAO SILVA'
],
'send_confirmation' => true
];
$ch = curl_init('http://api.payzuplus.com.brplan/create-signature');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-Api-Key: ' . $apiKey
]
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
print_r($result);
{
"success": true,
"message": "Transação aprovada",
"subscription_id": "SUB65d4f789abc123",
"transaction_id": "TRX987654321",
"status": "aprovado",
"valor_liquido": 95.50,
"data_liberacao": "2024-03-21 10:00:00",
"proxima_cobranca": "2024-03-21 10:00:00"
}
Crie uma assinatura com período de teste gratuito. Este endpoint realiza uma pré-autorização de R$1,00 no cartão para validá-lo, mas a primeira cobrança real só ocorrerá após o término do período de teste, que é baseado na frequência do plano selecionado.
A pré-autorização de R$1,00 é estornada automaticamente em até 7 dias úteis. Este valor não é efetivamente cobrado do cliente.
/plan/create-deferred-signature
{
"plan_id": "PLAN123", // ID do plano (obrigatório)
"customer": { // Dados do cliente (obrigatório)
"name": "João Silva",
"identity": "123.456.789-00",
"email": "[email protected]",
"phone": "+5511999999999"
},
"payment": { // Dados do cartão (obrigatório)
"card_number": "4111111111111111",
"security_code": "123",
"expiration_date": "12/2025",
"card_holder_name": "JOAO SILVA"
}
}
'PLAN123',
'customer' => [
'name' => 'João Silva',
'identity' => '123.456.789-00',
'email' => '[email protected]',
'phone' => '+5511999999999'
],
'payment' => [
'card_number' => '4111111111111111',
'security_code' => '123',
'expiration_date' => '12/2025',
'card_holder_name' => 'JOAO SILVA'
]
];
$ch = curl_init('http://api.payzuplus.com.brplan/create-deferred-signature');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-Api-Key: ' . $apiKey
]
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
print_r($result);
Resposta de Sucesso (200)
{
"success": true,
"message": "Pré-Autorização realizada com sucesso",
"subscription_id": "SUB65d4f789abc123",
"transaction_id": "TRX987654321",
"status": "aprovado",
"trial_ends_at": "2024-03-21 10:00:00",
"first_charge_date": "2024-03-21 10:00:00"
}
Resposta de Erro (400)
{
"error": "Cartão expirado",
"details": "Verifique os logs"
}
Receba notificações em tempo real sobre o status dos seus pagamentos PIX. Você informará a URL de webhook ao criar um pagamento, e receberá atualizações automáticas quando o status mudar.
O webhook é enviado como uma requisição POST para a URL configurada quando você cria um pagamento PIX. O payload contém informações detalhadas sobre a transação e a venda:
{
"transaction": {
"id": "cm7ceaeqv03jkcgu15mii27nc",
"status": "completed",
"created_at": "2025-02-19 20:58:02",
"updated_at": "2025-02-19 17:58:22",
"amount": 100,
"qr_code": {
"text": "00020126850014br.gov.bcb.pix2563pix.voluti.com.br/qr/v3/at/ea34d2ff-6b0a-46af-9b83-9cbb516204875204000053039865802BR5925PAYZU_INSTITUICAO_DE_PAGA6014TEIXEIRA_DE_FR62070503***6304A70D",
"url": "https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=00020126850014br.gov.bcb.pix2563pix.voluti.com.br%2Fqr%2Fv3%2Fat%2Fea34d2ff-6b0a-46af-9b83-9cbb516204875204000053039865802BR5925PAYZU_INSTITUICAO_DE_PAGA6014TEIXEIRA_DE_FR62070503%2A%2A%2A6304A70D"
}
},
"venda": {
"id": "91",
"status": "aprovado",
"valor": "100.00",
"created_at": "2025-02-19 20:58:02",
"approved_at": "2025-02-19 17:58:22",
"comprador": {
"nome": "Joao silva",
"documento": "11111111111"
}
}
}
O campo transaction.status pode ter os seguintes valores:
O campo venda.status pode ter os seguintes valores:
Ao receber um webhook, sua aplicação deve:
X-Payzu-Signaturetransaction.status e venda.statusPara verificar a autenticidade dos webhooks, compare o cabeçalho "X-Payzu-Signature" com o hash HMAC-SHA256 do corpo do webhook usando sua chave secreta.
Lista de códigos de erro que podem ser retornados pela API, com explicações e sugestões para resolução.
| Código | Descrição | Solução Sugerida |
|---|---|---|
| 401 | Chave de API inválida | Verifique se está enviando a chave correta no cabeçalho X-Api-Key |
| 4001 | Cartão expirado | Solicite um cartão válido ao cliente |
| 4002 | Cartão com fundos insuficientes | Solicite outra forma de pagamento |
| 4003 | CPF/CNPJ inválido | Verifique o formato e a validade do documento |
| 4004 | Plano não encontrado | Verifique o ID do plano informado |
| 5001 | Erro de processamento | Entre em contato com suporte técnico |
| 5002 | Serviço indisponível | Tente novamente mais tarde |
Nossa equipe está disponível para ajudar com qualquer dúvida sobre a integração da API PayZu Plus.