Crie a cobrança na API, redirecione o comprador para a página da Nucleo e libere o plano no webhook. Você nunca vê o número do cartão.
checkoutUrl — o cartão é tokenizado na nossa página (PCI / Mercado Pago).
curl -X POST https://nucleopay.com.br/api/card/charge/create \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: pedido-42" \
-d '{
"value": 49.90,
"title": "Plano Pro",
"external_id": "sub_42",
"customer_email": "cliente@email.com",
"success_url": "https://meusaaS.com/obrigado",
"cancel_url": "https://meusaaS.com/checkout"
}'
Resposta inclui chargeId (NCC-…) e checkoutUrl (https://nucleopay.com.br/pay/NCC-…).
// No seu backend — nunca exponha o Bearer no browser res.redirect(charge.checkoutUrl); // App mobile: abra checkoutUrl em WebView / Custom Tab / SFSafariViewController
Com token np_test_ a página mostra Simular cartão aprovado. Ou no backend:
curl -X POST https://nucleopay.com.br/api/card/charge/simulate-pay \
-H "Authorization: Bearer np_test_…" \
-H "Content-Type: application/json" \
-d '{"charge_id":"NCC-…"}'
if (event === "charge.approved" && data.statusCode === "approved") {
await unlockPlan(data.external_id || data.chargeId);
}
Status: GET /api/card/charge/status?charge_id=NCC-…. Webhooks: guia.
Cole isto no Cursor, Claude, Lovable ou Trae:
Integre cartão Nucleo Pay no meu app/SaaS.
Base URL: https://nucleopay.com.br
Docs: https://nucleopay.com.br/docs/card
Manifesto: https://nucleopay.com.br/api/integrations/mcp/manifest
llms.txt: https://nucleopay.com.br/llms.txt
Auth: Authorization: Bearer SEU_TOKEN
NÃO peça nem envie número/CVV do cartão.
POST /api/card/charge/create { "value": 49.90, "title": "Plano Pro", "external_id": "pedido-1", "success_url": "https://meusite.com/obrigado", "cancel_url": "https://meusite.com/checkout" }
Redirecione o comprador para data.checkoutUrl (web) ou abra em WebView (app).
Webhook X-NucleoPay-Signature (HMAC SHA256): em charge.approved (data.statusCode === "approved"), libere o plano.
Sandbox: token np_test_ e POST /api/card/charge/simulate-pay { "charge_id": "NCC-..." }
const charge = await np.createCardCharge({
value: 49.9,
title: "Plano Pro",
success_url: "https://meusaaS.com/obrigado",
idempotencyKey: "pedido-42",
});
// charge.checkoutUrl