PayNowPro

Accept a one-time payment

Create a server-side payment intent for a capture or authorization flow.

Use a payment intent to begin a one-time payment. Your server creates the intent with order and customer information, then your payment-flow integration continues checkout using the returned intentId.

Choose an intent type

Intent typeUse when
CAPTUREYou want to collect the payment during the payment flow.
AUTHORIZEYou want to authorize the payment before a later capture step supported by your payment configuration.
RECURRINGYou are working with a legacy recurring-payment flow. For new recurring billing, use Subscriptions.

Confirm which payment methods and authorization behavior are enabled for your PayNowPro account before relying on a specific flow.

Create the intent

Create the intent in a server-side endpoint. Use an order ID that you generate, and calculate the amount from the product or order stored in your system.

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": "388",
    "orderNumber": "order_123",
    "intentType": "CAPTURE",
    "receiptUrl": "https://example.com/orders/order_123/receipt",
    "returnUrl": "https://example.com/orders/order_123/complete",
    "paymentDescription": "Order order_123"
  }'

The API returns an intentId and a status. Store the intentId with your order. It lets you correlate the checkout attempt with the payment flow and support records.

Optional request data

A payment-intent request can also include:

  • discounts: Named discount amounts applied to the payment.
  • expiryDate: A date after which the payment intent should no longer be used.
  • promotionalCode: A promotion identifier for your records or payment configuration.
  • customerId: A PayNowPro customer ID, when your flow uses one.

Use the Create payment intent API reference for the complete schema.

Confirm before fulfilment

A browser return URL helps you route the customer after checkout; it is not a reliable signal to ship an order. Confirm the outcome with the status or event mechanism available to your account before you fulfil goods, activate a service, or send a receipt.

Common implementation rules

  • Create payment intents on your server, never directly in browser code.
  • Validate the amount, currency, product, and order ID before creating the intent.
  • Use a unique order number so you can reconcile payments with your application.
  • Keep card data and API keys out of application logs and support tickets.
  • Follow the payment security guidance when designing your flow.

On this page