Skip to main content
Take an ALLOW from Attesso and execute it on Stripe as a PaymentIntent, then report the outcome. This is the Stripe recipe for the pattern in Bind an authorization to your PSP: authorize first, execute second, report finality.

Execute the approved action

The idempotency key is a request option (the second argument), not a body parameter; Stripe rejects unknown body parameters.

Report the outcome to Attesso

  • status: 'succeeded': definite acceptance; commit with provider_transaction_reference: paymentIntent.id.
  • A decline (card_declined): definite non-acceptance; cancel with reason: EXECUTOR_REJECTED.
  • requires_action (for example, the customer still has to complete 3D Secure): not final; do not commit or cancel yet.
  • A timeout or lost response: reconcile before deciding (below).

Reconcile a lost response

  • Replay the identical request with the same idempotency key; Stripe returns the original result for at least 24 hours.
  • Retrieve the PaymentIntent by ID if you recorded it.
  • Search by the metadata you attached: metadata['external_action_reference']. Allow up to a minute for search to propagate before treating an empty result as no record.
The full decision table is in Reconcile authorization outcomes.

Test mode

The same call works with an sk_test_... key and the test payment method pm_card_visa.