curl -X POST 'https://app.junglepagamentos.com/api/gateway/charges' \
-H "X-Api-Key: $JUNGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"product": { "name": "Plano Pro", "value": 149.90 },
"customer": {
"name": "João Silva",
"email": "joao@exemplo.com",
"doc": "11122233344",
"docType": "cpf",
"phone": "11912345678",
"ip": "177.10.20.30"
},
"expiracaoSegundos": 3600,
"callbackUrl": "https://seusite.com/webhooks/jungle",
"metadata": { "pedido_id": "A-1001" }
}'
export async function criarPix(pedido) {
const res = await fetch('https://app.junglepagamentos.com/api/gateway/charges', {
method: 'POST',
headers: { 'X-Api-Key': process.env.JUNGLE_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({
product: { name: pedido.titulo, value: pedido.total }, // reais
customer: {
name: pedido.cliente.nome,
email: pedido.cliente.email,
doc: pedido.cliente.cpf,
ip: pedido.cliente.ip, // IP do comprador
},
callbackUrl: 'https://seusite.com/webhooks/jungle',
metadata: { pedido_id: pedido.id },
}),
})
const body = await res.json()
if (!body.success) throw new Error(`${res.status} ${body.error}`)
return body.data // { transactionId, pixCode, expiresAt, amount, feeAmount, netAmount }
}
def criar_pix(pedido):
r = requests.post(
f"{API}/gateway/charges",
headers={"X-Api-Key": os.environ["JUNGLE_API_KEY"]},
json={
"product": {"name": pedido.titulo, "value": float(pedido.total)},
"customer": {
"name": pedido.cliente.nome,
"email": pedido.cliente.email,
"doc": pedido.cliente.cpf,
"ip": pedido.cliente.ip,
},
"callbackUrl": "https://seusite.com/webhooks/jungle",
"metadata": {"pedido_id": pedido.id},
},
timeout=15,
)
body = r.json()
if not body["success"]:
raise RuntimeError(f'{r.status_code} {body["error"]}')
return body["data"]
function criarPix(array $pedido): array {
$ch = curl_init('https://app.junglepagamentos.com/api/gateway/charges');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 15,
CURLOPT_HTTPHEADER => ['X-Api-Key: ' . getenv('JUNGLE_API_KEY'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'product' => ['name' => $pedido['titulo'], 'value' => (float) $pedido['total']],
'customer' => ['name' => $pedido['nome'], 'email' => $pedido['email'], 'doc' => $pedido['cpf']],
'callbackUrl' => 'https://seusite.com/webhooks/jungle',
'metadata' => ['pedido_id' => $pedido['id']],
]),
]);
$body = json_decode(curl_exec($ch), true);
if (empty($body['success'])) throw new RuntimeException($body['error'] ?? 'erro');
return $body['data'];
}