Payment intents
Start a payment flow with a server-side request that records the amount, order, customer, and payment type.
A payment intent represents a request to collect or authorize a payment. Your server creates the intent with trusted order and customer data; PayNowPro returns an intentId and its current status for the payment flow.
What a payment intent contains
A payment-intent request includes:
tenantAlias: The PayNowPro tenant that owns the request.firstName,lastName, andemail: The customer's details for the payment flow.amountandcurrencyCode: The payment amount and ISO 4217 numeric currency code.orderNumber: Your unique reference for the order.intentType:CAPTURE,AUTHORIZE, orRECURRING.receiptUrl: The URL used for your receipt experience.paymentDescription: A clear description of the purchase.
You can also provide a returnUrl, discounts, an expiry date, promotional code, an existing PayNowPro customer ID, and legacy recurring-payment fields when your enabled payment flow requires them.
Choose an intent type
| Type | Purpose |
|---|---|
CAPTURE | Collect payment during the checkout flow. |
AUTHORIZE | Request an authorization before a later capture step available in your payment configuration. |
RECURRING | Support a legacy recurring-payment flow. Use Subscriptions for new recurring-billing integrations. |
Payment state
The API returns an intentId and a current status. Stored payment intents can move through CREATED, FULFILLED, and FAILED states. Record the intent ID with your order, and confirm the final outcome through the payment status or event mechanism available to your account before you fulfil an order.
A customer returning to your returnUrl is not, by itself, proof that the payment succeeded.
Build the request on your server
Do not create payment intents from browser or mobile client code. Your server must validate the amount, currency, product, and order before creating the request.
curl -X POST "https://api.paynowpro.com/api/v1/payments/intent" \
-H "api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"tenantAlias": "YOUR_TENANT_ALIAS",
"firstName": "Avery",
"lastName": "Brown",
"email": "avery@example.com",
"amount": 49.99,
"currencyCode": "840",
"orderNumber": "order_123",
"intentType": "CAPTURE",
"receiptUrl": "https://example.com/orders/receipt",
"paymentDescription": "Order payment"
}'Use Accept a one-time payment for the end-to-end implementation sequence and the Payment intent API reference for the full schema.
Security
Keep API keys and payment data out of browser code, logs, and support tickets. Review Security, compliance, and support before you design or launch a payment flow.