AxioPay
API Reference

Gateway de pagamentos brasileiro com suporte a Pix, cartão de crédito e débito, e links de pagamento compartilháveis. API REST, respostas em JSON, integração em minutos.

ℹ️ Base URL de produção: https://api.axiopay.com.br/v1 — Sandbox: https://sandbox.axiopay.com.br/v1

Início rápido

Em 3 passos você já aceita pagamentos:

bash
# 1. Gere suas chaves em app.axiopay.com.br/developers
# 2. Crie uma cobrança Pix

curl -X POST https://api.axiopay.com.br/v1/charges \
  -H "Authorization: Bearer sk_live_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 4990,
    "method": "pix",
    "description": "Plano Imobiliária — X-Troca",
    "customer": {
      "name": "João Silva",
      "cpf": "123.456.789-00",
      "email": "[email protected]"
    }
  }'

Chaves de API

Todas as requisições devem incluir sua chave no header Authorization. Use chaves diferentes para produção e sandbox.

Prefixo Ambiente Uso
sk_live_ Produção Transações reais. Mantenha segura no servidor.
sk_test_ Sandbox Testes sem cobranças reais.
pk_live_ Produção (pública) Uso no frontend. Não realiza cobranças.
⚠️ Nunca exponha sua chave sk_live_ no frontend. Use sempre do servidor.

Taxas por método

Cobradas somente sobre transações aprovadas. Liquidação automática na conta bancária cadastrada.

💳 Cartão de Crédito
4,99%
+ R$ 0,99 por transação
Liquidação D+2
⚡ Pix
3,99%
+ R$ 0,99 por transação
Liquidação D+0
💳 Cartão de Débito
3,99%
+ R$ 0,99 por transação
Liquidação D+1

Cobranças

POST /v1/charges Criar cobrança

Parâmetros

CampoTipoObrig.Descrição
amount integer sim Valor em centavos. Ex: 4990 = R$49,90
method string sim pix · credit_card · debit_card
description string não Descrição da cobrança (max 255 chars)
customer object sim Dados do pagador. Ver objeto Customer abaixo.
metadata object não Dados adicionais retornados no webhook.
webhook_url string não URL para receber notificações de status.

Objeto Customer

CampoTipoObrig.Descrição
name string sim Nome completo
cpf string sim CPF com ou sem formatação
email string sim E-mail do pagador
phone string não Telefone com DDD

Resposta

json
{
  "id": "ch_01HXYZ123ABC",
  "status": "pending",
  "amount": 4990,
  "method": "pix",
  "pix": {
    "qr_code": "00020126580014BR.GOV.BCB.PIX...",
    "qr_code_url": "https://api.axiopay.com.br/v1/charges/ch_01HXYZ/qr.png",
    "expires_at": "2026-03-12T23:59:59Z"
  },
  "customer": {
    "name": "João Silva",
    "email": "[email protected]"
  },
  "created_at": "2026-03-12T10:00:00Z"
}
GET /v1/charges/{id} Consultar cobrança

Retorna os dados completos de uma cobrança incluindo status atual.

Status possíveis

StatusDescrição
pendingAguardando pagamento
paidPago e confirmado
failedFalha no pagamento
expiredQR Code ou link expirado
refundedEstornado

Integração Pix

O Pix é processado via Banco Central do Brasil. O QR Code é gerado instantaneamente e a confirmação ocorre em tempo real.

Liquidação D+0 — o valor cai na sua conta no mesmo dia, 24h por dia, 7 dias por semana.

Exemplo completo — Pix

php
<?php

// Criar cobrança Pix
$ch = AxioPay::charge([
    'amount'      => 4990,        // R$49,90 em centavos
    'method'      => 'pix',
    'description' => 'Plano Imobiliária',
    'customer'    => [
        'name'  => 'João Silva',
        'cpf'   => '12345678900',
        'email' => '[email protected]',
    ],
    'webhook_url' => 'https://seusite.com.br/webhook/axiopay',
    'metadata'   => ['order_id' => 1042],
]);

// Exibir QR Code para o cliente
echo '<img src="' . $ch->pix->qr_code_url . '">';
echo '<textarea>' . $ch->pix->qr_code . '</textarea>';

Cartão de Crédito e Débito

Para processar cartões, tokenize os dados no frontend usando a chave pública pk_live_ e envie o token ao servidor. Nunca trafegue dados de cartão pelo seu backend diretamente.

1. Tokenizar no frontend

javascript
// Incluir o SDK AxioPay
const axiopay = new AxioPay('pk_live_SUA_CHAVE_PUBLICA');

const token = await axiopay.tokenize({
    number:   '4111111111111111',
    name:     'JOAO SILVA',
    expiry:   '12/2028',
    cvv:      '123',
});

// Envie token.id para o seu servidor
fetch('/processar-pagamento', {
    method: 'POST',
    body: JSON.stringify({ card_token: token.id })
});

2. Cobrar no backend

php
$ch = AxioPay::charge([
    'amount'     => 4990,
    'method'     => 'credit_card',  // ou 'debit_card'
    'card_token' => $_POST['card_token'],
    'customer'   => [
        'name'  => 'João Silva',
        'cpf'   => '12345678900',
        'email' => '[email protected]',
    ],
]);

if ($ch->status === 'paid') {
    // Ativar produto/serviço
}


Webhooks

A AxioPay envia uma requisição POST para sua webhook_url sempre que o status de uma cobrança muda.

Payload do webhook

json
{
  "event": "charge.paid",
  "charge": {
    "id": "ch_01HXYZ123ABC",
    "status": "paid",
    "amount": 4990,
    "method": "pix",
    "paid_at": "2026-03-12T10:05:23Z",
    "metadata": { "order_id": 1042 }
  },
  "signature": "sha256=abc123..."
}

Verificar assinatura

php
$payload   = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_AXIOPAY_SIGNATURE'];
$secret    = 'seu_webhook_secret';

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

if (!hash_equals($expected, $signature)) {
    http_response_code(401);
    exit;
}

$event = json_decode($payload);

if ($event->event === 'charge.paid') {
    // Liberar acesso ao produto
    $order_id = $event->charge->metadata->order_id;
    ativar_plano($order_id);
}

WordPress / WooCommerce

Instale o plugin AxioPay e configure suas chaves. Após a ativação, o gateway aparece automaticamente nas opções de pagamento do WooCommerce.

📦 Download: axiopay-woocommerce.zip — compatível com WooCommerce 8.x+

Shortcode de checkout

Para usar o checkout AxioPay em qualquer página WordPress, sem WooCommerce:

shortcode
[axiopay_checkout
  produto="Nome do produto"
  valor="4990"
  descricao="Descrição"
  redirect_url="https://seusite.com/obrigado"
  webhook_url="https://seusite.com/webhook"
]

Parâmetros do shortcode

ParâmetroObrig.Descrição
produtosimNome exibido no checkout
valorsimValor em centavos
descricaonãoDescrição interna da cobrança
redirect_urlnãoURL após pagamento aprovado
webhook_urlnãoURL para receber notificações
metodosnãopix,credit_card,debit_card (padrão: todos)

SDK PHP

bash
composer require axiopay/axiopay-php
php
use AxioPay\AxioPay;

AxioPay::setApiKey('sk_live_SUA_CHAVE');

// Criar cobrança
$charge = AxioPay::charge([...]);

// Consultar
$charge = AxioPay::getCharge('ch_01HXYZ');

// Estornar
AxioPay::refund('ch_01HXYZ');

Sandbox & Cartões de teste

NúmeroResultado
4111 1111 1111 1111✅ Aprovado
4000 0000 0000 0002❌ Saldo insuficiente
4000 0000 0000 0069❌ Cartão expirado
4000 0000 0000 0119⏳ Timeout (simula lentidão)
ℹ️ No sandbox, cobranças Pix são confirmadas automaticamente após 30 segundos. Use qualquer CPF válido para testes.

Códigos de erro

HTTPCódigoDescrição
400 invalid_amount Valor inválido ou abaixo do mínimo (R$1,00)
401 invalid_api_key Chave de API inválida ou expirada
400 invalid_card Dados do cartão inválidos
400 card_declined Cartão recusado pela operadora
400 insufficient_funds Saldo insuficiente
422 charge_expired QR Code ou link de pagamento expirado
410 link_disabled Link de pagamento desativado
410 link_max_reached Limite de pagamentos do link atingido