Use client_id e client_secret para obter o token, depois envie o bearer token nos endpoints protegidos para emitir PIX, boleto, consultar transações e configurar split.
Estrutura baseada em Swagger API Doc, com autenticação, contratos de request, exemplos de resposta, webhooks e códigos HTTP esperados.
client_id e client_secret para POST /api/v1/auth/token.access_token, token_type, expires_at e expires_in.Authorization: Bearer {access_token}.client_secret em HTML, JavaScript público ou app sem backend seguro.Endpoint público usado para autenticar o cliente externo.
{
"client_id": "b233e9de-4641-467f-8d38-1221f17259bb",
"client_secret": "sk_live_xxx"
}
Resposta 200:
{
"access_token": "pgw_xxx",
"token_type": "Bearer",
"expires_at": "2026-06-25T22:53:12Z",
"expires_in": 1800
}
Endpoint protegido por bearer token. Cria um pedido de PIX e retorna QR Code quando o provedor estiver configurado.
{
"external_id": "pedido-1001",
"amount": 150.75,
"description": "Pedido teste via API",
"expires_in": 3600,
"split_rule_id": "uuid-da-regra-opcional",
"customer": {
"name": "João da Silva",
"document": "12345678901"
},
"metadata": {
"order_id": "1001"
}
}
Consulta uma cobrança PIX pelo identificador público retornado na criação.
{
"external_id": "boleto-1001",
"amount": 250.00,
"due_date": "2026-07-10",
"description": "Boleto do pedido 1001",
"customer": {
"name": "Maria Souza",
"document": "98765432100",
"email": "maria@email.com",
"phone": "11988888888"
}
}
Permite filtrar por method, status, external_id e per_page.
GET /api/v1/transactions?method=PIX&status=PENDING&per_page=20
{
"name": "Split marketplace",
"apply_mode": "MANUAL",
"priority": 100,
"destinations": [
{
"label": "Comissão marketplace",
"destination_type": "PIX_KEY",
"percentage": 10,
"pix_key_type": "CNPJ",
"pix_key": "12345678000199",
"name": "Marketplace LTDA",
"document": "12345678000199"
}
]
}
Os plugins são starters técnicos. Cada loja deve configurar URL base, client_id, client_secret, webhook secret e regras comerciais antes de publicar em produção.
Gateway de pagamento para checkout WooCommerce, geração de PIX e webhook para marcar pedido como pago.
Shortcode para gerar pagamento PIX em páginas, landing pages, portais e áreas restritas.
Guia de integração para Payment App, app customizado com backend próprio ou manual payment method para MVP.
Selecione a linguagem e copie o fluxo completo: autenticação com client_id e client_secret, emissão de PIX usando bearer token e consulta de transações.
TOKEN=$(curl -s -X POST "https://gateway.seudominio.com.br/api/v1/auth/token" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"client_id":"SEU_CLIENT_ID","client_secret":"SEU_CLIENT_SECRET"}' | jq -r '.access_token')
curl -s -X POST "https://gateway.seudominio.com.br/api/v1/pix/charges" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer '$TOKEN'" \
-d '{
"external_id":"pedido-1001",
"amount":150.75,
"description":"Pedido via curl",
"expires_in":3600,
"customer":{"name":"João da Silva","document":"12345678901"}
}'
$baseUrl = 'https://gateway.seudominio.com.br';
$clientId = 'SEU_CLIENT_ID';
$clientSecret = 'SEU_CLIENT_SECRET';
$tokenResponse = Http::post($baseUrl . '/api/v1/auth/token', [
'client_id' => $clientId,
'client_secret' => $clientSecret,
])->json();
$pix = Http::withToken($tokenResponse['access_token'])
->post($baseUrl . '/api/v1/pix/charges', [
'external_id' => 'pedido-1001',
'amount' => 150.75,
'description' => 'Pedido via PHP',
'expires_in' => 3600,
'customer' => [
'name' => 'João da Silva',
'document' => '12345678901',
],
])->json();
const baseUrl = 'https://gateway.seudominio.com.br';
const tokenRes = await fetch(`${baseUrl}/api/v1/auth/token`, {
method: 'POST',
headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
body: JSON.stringify({ client_id: 'SEU_CLIENT_ID', client_secret: 'SEU_CLIENT_SECRET' })
});
const { access_token } = await tokenRes.json();
const pixRes = await fetch(`${baseUrl}/api/v1/pix/charges`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
Authorization: `Bearer ${access_token}`
},
body: JSON.stringify({
external_id: 'pedido-1001',
amount: 150.75,
customer: { name: 'João da Silva', document: '12345678901' }
})
});
using var http = new HttpClient { BaseAddress = new Uri("https://gateway.seudominio.com.br") };
var tokenResponse = await http.PostAsJsonAsync("/api/v1/auth/token", new {
client_id = "SEU_CLIENT_ID",
client_secret = "SEU_CLIENT_SECRET"
});
var token = await tokenResponse.Content.ReadFromJsonAsync<TokenResponse>();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token!.access_token);
var pixResponse = await http.PostAsJsonAsync("/api/v1/pix/charges", new {
external_id = "pedido-1001",
amount = 150.75,
customer = new { name = "João da Silva", document = "12345678901" }
});
import requests
base_url = 'https://gateway.seudominio.com.br'
token = requests.post(f'{base_url}/api/v1/auth/token', json={
'client_id': 'SEU_CLIENT_ID',
'client_secret': 'SEU_CLIENT_SECRET',
}).json()['access_token']
pix = requests.post(f'{base_url}/api/v1/pix/charges',
headers={'Authorization': f'Bearer {token}'},
json={
'external_id': 'pedido-1001',
'amount': 150.75,
'customer': {'name': 'João da Silva', 'document': '12345678901'},
}
).json()
tokenPayload := strings.NewReader(`{"client_id":"SEU_CLIENT_ID","client_secret":"SEU_CLIENT_SECRET"}`)
req, _ := http.NewRequest("POST", baseURL+"/api/v1/auth/token", tokenPayload)
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
// faça decode do JSON e leia access_token
pixPayload := strings.NewReader(`{"external_id":"pedido-1001","amount":150.75,"customer":{"name":"João da Silva","document":"12345678901"}}`)
req, _ = http.NewRequest("POST", baseURL+"/api/v1/pix/charges", pixPayload)
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer "+accessToken)
<!-- Nunca coloque client_secret no navegador. O HTML chama o backend do cliente. -->
<form id="pix-form">
<input name="amount" value="150.75">
<button>Gerar PIX</button>
</form>
<script>
document.querySelector('#pix-form').addEventListener('submit', async (event) => {
event.preventDefault();
const response = await fetch('/seu-backend/gerar-pix', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ amount: 150.75, external_id: 'pedido-1001' })
});
const pix = await response.json();
console.log(pix.pix.qr_code);
});
</script>