PayNowPro

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, and email: The customer's details for the payment flow.
  • amount and currencyCode: The payment amount and ISO 4217 numeric currency code.
  • orderNumber: Your unique reference for the order.
  • intentType: CAPTURE, AUTHORIZE, or RECURRING.
  • 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

TypePurpose
CAPTURECollect payment during the checkout flow.
AUTHORIZERequest an authorization before a later capture step available in your payment configuration.
RECURRINGSupport 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.

On this page