Processor Details
Integration Guide
1
Enable raw card handling
In Stripe integration settings, enable Handle card information directly
2
Copy credentials
Log in to the Stripe Dashboard:
- Copy Account ID from Settings → Account details
- Copy Publishable key and Secret key from Developers → API keys
Publishable Key is required for Cash App Pay. Without it, Cash App Pay will not appear in checkout.
3
Add integration in PayNext
In Dashboard → Integrations, click Add new integration → Stripe → Connect
4
Enter credentials
- Name: Label for this connection (e.g., “Stripe US”)
- Account ID, API Key (Secret key), Publishable Key: Values from Stripe
- Network Tokens: Enable if activated by your Stripe account manager
- Adaptive Acceptance: Enable if activated (requires Network Tokens)
5
Configure webhooks
In Stripe Developers → Webhooks, create an endpoint with the PayNext webhook URL and subscribe to:
payment_intent.succeededpayment_intent.payment_failedpayment_intent.processingpayment_intent.canceledpayment_intent.amount_capturable_updatedpayment_intent.requires_actionrefund.createdrefund.failedrefund.updatedradar.early_fraud_warning.createdpayment_attempt_record_entry.capture_settledmandate.updatedcharge.dispute.createdcharge.dispute.updatedcharge.dispute.closedcharge.dispute.funds_withdrawncharge.dispute.funds_reinstated
The
charge.dispute.* events report when a customer disputes a payment and each time the
dispute changes, through to its final outcome. PayNext records the dispute on the payment and
keeps its status up to date. Without these events, PayNext is not notified when a dispute is
opened or changes.mandate.updated reports when a customer revokes a mandate for a payment method that is charged
off-session, such as Cash App Pay or Pix Automático. PayNext marks the payment method as revoked
so it is no longer used for renewals. Without this event, PayNext keeps attempting renewals on a
mandate the customer has already cancelled.payment_attempt_record_entry.capture_settled delivers the Acquirer Reference Number (ARN) for settled charges via Stripe’s Payment Records API. This API is a Stripe beta that Stripe enables per account — contact your Stripe representative to have it enabled on your Stripe account. Without it, this event is not delivered and ARN is not captured for Stripe payments.6
Copy webhook secret
Copy the Signing secret from Stripe and paste it into the Webhook Secret field in PayNext
7
Save
Click Connect to complete the integration
Metadata Mapping
Stripe supports full metadata mapping. Common use cases:Refund failures
Stripe can report a card refund as successful and fail it later, sometimes days after the refund was created. For example, a refund fails when the customer’s card was closed. PayNext needs therefund.failed and refund.updated webhook events to pick up these changes.
In both cases the payment’s
refunded_amount returns to 0, and you receive payment_v2.refund.failed or payment_v2.refund.declined. The customer did not get the money back.
Stripe does not accept a second refund to a card after a refund to that card failed. A new refund request for the payment returns an error with Stripe’s message. Refund the customer outside the card instead, for example by bank transfer.