Use client_id e client_secret para obter o token, depois envie o bearer token nos endpoints protegidos para criar links de pagamento, emitir PIX, boleto, cartão, 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
}
Cria uma URL pĆŗblica de checkout hospedado pela RenkoPay. Ć possĆvel liberar somente um meio de pagamento, por exemplo PIX, ou combinar vĆ”rios. title e external_id sĆ£o opcionais e sĆ£o gerados automaticamente com base no cliente/tenant quando omitidos.
Exemplo, link PIX com valor fixo:
{
"description": "Pagamento via PIX",
"amount": 150.00,
"allowed_methods": ["PIX"],
"default_method": "PIX",
"expires_at": "2026-12-20T23:59:59-03:00"
}
Exemplo, valor informado pelo pagador:
{
"description": "Pagamento aberto",
"allow_customer_amount": true,
"suggested_amount": 150.00,
"minimum_amount": 10.00,
"maximum_amount": 5000.00,
"allowed_methods": ["PIX"],
"default_method": "PIX",
"expires_at": "2026-12-20T23:59:59-03:00"
}
Resposta 201:
{
"id": "uuid-do-link",
"external_id": "link-cliente-tenant-20261220153000-abc12",
"title": "Pagamento - Nome do cliente",
"checkout_url": "https://gateway.renkopay.com.br/pay/uuid-do-link",
"amount_mode": "CUSTOMER_DEFINED",
"amount": null,
"minimum_amount": 10.00,
"maximum_amount": 5000.00,
"allowed_methods": ["PIX"],
"status": "ACTIVE"
}
Consulta o link pelo identificador público e retorna os dados do checkout, status, URL pública e últimas transações geradas.
No gerencial, acesse /admin/transactions para cancelar cobranças pendentes ou solicitar reembolso total/parcial das transações suportadas pela adquirente padrão do tenant.
PIX pendente: POST /api/v2/charges/{id}/pix/cancel
PIX pago: POST /api/v2/charges/{id}/pix/return, total
Boleto pendente: POST /api/v2/charges/{id}/boleto/cancel
Cartão: POST /api/v2/charges/{id}/credit-card/refund, total ou parcial
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",
"email": "joao@email.com",
"phone": "11999999999",
"birthdate": "1990-01-01"
},
"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-12-10",
"payment_limit_date": "2026-12-15",
"description": "Boleto do pedido 1001",
"instructions": "Não receber após a data limite.",
"customer": {
"name": "Maria Souza",
"document": "98765432100",
"email": "maria@email.com",
"phone": "11988888888",
"birthdate": "1990-01-01",
"address": {
"street": "Avenida Rio Verde",
"number": "SN",
"neighborhood": "Vila SĆ£o Tomaz",
"city": "Aparecida de Goiânia",
"state": "GO",
"zip_code": "74915515"
}
}
}
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, criação de link de pagamento hospedado, emissão de PIX e consulta de transações.
TOKEN=$(curl -s -X POST "https://gateway.renkopay.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.renkopay.com.br/api/v1/payment-links" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"description":"Checkout hospedado PIX com valor informado pelo pagador",
"allow_customer_amount":true,
"suggested_amount":150.00,
"minimum_amount":10.00,
"maximum_amount":5000.00,
"allowed_methods":["PIX"],
"default_method":"PIX",
"customer":{
"name":"João da Silva",
"document":"12345678901",
"email":"joao@email.com",
"phone":"11999999999",
"birthdate":"1990-01-01",
"address":{
"street":"Avenida Rio Verde",
"number":"SN",
"neighborhood":"Vila SĆ£o Tomaz",
"city":"Aparecida de Goiânia",
"state":"GO",
"zip_code":"74915515"
}
},
"metadata":{"order_id":"1001"}
}'
$baseUrl = 'https://gateway.renkopay.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',
'email' => 'joao@email.com',
'phone' => '11999999999',
'birthdate' => '1990-01-01',
],
])->json();
const baseUrl = 'https://gateway.renkopay.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',
email: 'joao@email.com',
phone: '11999999999',
birthdate: '1990-01-01'
}
})
});
using var http = new HttpClient { BaseAddress = new Uri("https://gateway.renkopay.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",
email = "joao@email.com",
phone = "11999999999",
birthdate = "1990-01-01"
}
});
import requests
base_url = 'https://gateway.renkopay.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',
'email': 'joao@email.com',
'phone': '11999999999',
'birthdate': '1990-01-01',
},
}
).json()
baseURL := "https://gateway.renkopay.com.br"
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","email":"joao@email.com","phone":"11999999999","birthdate":"1990-01-01"}}`)
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>