Skip to main content
Nova.Pay’s checkout flow is built around three core steps: fetch the available payment plans for your product, tokenize sensitive card data client-side, and submit the payment. This guide walks you through each step end-to-end and explains how to interpret the response so you can deliver a smooth experience to your customers.
1

Get Available Payment Plans

Before presenting a checkout form, retrieve the payment plans associated with your product. Each plan describes an available payment method (credit card, Pix, boleto) along with instalment options and pricing.Endpoint: GET /payment_plansSend one context parameter. If multiple are supplied, precedence is checkout_page_id, charge_id, cart_id, then cart_page_id. With no context, every kept plan is returned and products are still required.
The response is an object grouped by payment method, with one entry per selectable installment count. Only configured methods appear. Pass the chosen id (for example, "42-3") as payment_plan_id. This example shows a total of 120 without fees or discounts and includes every option field.
value is the per-installment amount. fixed and percentage are already included; do not add them again. See the Payment Plans reference for field definitions and error responses.
2

Tokenize the Card (Credit Card Only)

Nova.Pay never receives raw card numbers. Card data must be tokenized client-side using the gateway’s own SDK before you submit the payment. Nova.Pay supports both Pagar.me and Stripe as card gateways.
Never send raw card numbers to the Nova.Pay API. Always tokenize card data using the gateway SDK running in the customer’s browser.
Use the Pagar.me.js SDK to create a card token. The returned token string (e.g. tok_abc123) is what you pass to POST /payments as credit_card_0_token.
3

Submit the Payment

Call POST /payments with the payment_plan_id from Step 1, the gateway token from Step 2 (credit card only), and the customer’s contact details.Endpoint: POST /payments
Base URL: https://yourcompany.pay.nova.money/api/v1
4

Handle the Response

A successful request returns HTTP 200 with a PaymentResult object. Inspect order_status first, then branch based on the payment method used.
string
required
Overall status of the order (e.g. "paid", "pending", "refused").
array
Array of gateway-level payment IDs created for this order.
string
URL to the generated boleto PDF. Present only when the payment method is boleto.
string
Base64-encoded Pix QR code image. Present only for Pix payments.
string
Hosted URL for the Pix QR code image. Present only for Pix payments.
string
ISO 8601 timestamp indicating when the Pix QR code expires. Present only for Pix payments.
string
Success redirect URL if one is configured on the checkout page. Redirect the customer here after displaying confirmation.
string
Signed GlobalID (SGID) of an upsell offer, if the checkout page has one configured and the payment succeeded.
boolean
true when the purchased product is a subscription. Use this to show appropriate messaging to the customer.
If the response contains an offer field, you can present the customer with a one-click upsell — no card re-entry needed. See the Upsell guide for details.

Two-Card Split Payment

Nova.Pay supports splitting a payment across two credit cards. Include both tokens and their respective payment plan assignments in the request body.
Each card is charged independently by the gateway. The payments array in the response will contain two entries — one per card.