Payment Session Status

Payment Session Status

Every payment session has a session_status that reflects its current state in the payment lifecycle. This page lists all possible statuses and explains how to reach each one.

For a step-by-step guide on testing all statuses in sandbox, see Testing Complete Payment Flows in Sandbox.


Status overview

StatusPhaseDescription
provider_requiredIntermediateThe payment session has been created and is waiting for the payer to take action (select a bank, provide information).
sca_requiredIntermediateThe payer has been redirected to their bank and needs to authenticate (Strong Customer Authentication).
payment_pendingIntermediateThe payment is being processed by the bank. The bank has not yet confirmed the final outcome.
payment_createdFinalThe payment has been successfully validated by the bank.
payment_unsuccessfulFinal or IntermediateThe payment was rejected by either the payer or the bank. The application configuration determines whether the payer can retry.
payment_cancelledFinalThe payment was cancelled by the merchant (via Console or API).
payment_expiredFinalThe payment session has expired before the payer completed the flow.
payment_waitingIntermediateA Request to Pay has been generated and is waiting for the payer to take action.
payment_partialIntermediate (or Final)A payment was received but with an amount lower than expected (Smart Transfer only). Additional payments can still arrive and update the session, regardless of how much time has passed. If no further transactions are received, the session remains in payment_partial as its final state.
session_initiatedIntermediateThe payment session has been created. For pay-in flows, this is a brief initial state before the payer opens Connect. For refunds and payouts, it indicates the operation has been initiated and is pending execution.
iban_requiredIntermediateThe payout is waiting for the payee to share their account details.
iban_receivedIntermediateThe payout has received a valid beneficiary account and can proceed.

Note: payment_unsuccessful can be either final or intermediate depending on your application configuration — if retry is enabled, the payer can attempt the payment again within the same session.


How to reach each status in sandbox

Immediate Transfer

StatusHow to reach it
provider_requiredCreate a payment session — this is the default initial status
sca_requiredPayer opens Connect and is redirected to their bank. With real bank sandboxes: select Credit Mutuel > "Continue on Credit Mutuel"
payment_pendingDemo Bank: Select "pending" outcome. Real banks: Select CIC Privee > authenticate > "Abandonner"
payment_createdDemo Bank: Confirm payment (default). Real banks: Select Credit Mutuel > authenticate > "Confirmer". From pending: Use Bank Transition to transition to payment_created
payment_unsuccessfulDemo Bank: Select "rejected" outcome. Real banks: Select Credit Mutuel > authenticate > "Abandonner". From pending: Use Bank Transition to transition to payment_unsuccessful
payment_cancelledCancel the session via Console
payment_expiredSet a 1-second expiry on session creation

Smart Transfer

StatusHow to reach it
provider_requiredCreate a payment session — default initial status
sca_requiredPayer selects "Bank Transfer" in Connect. See Smart Transfer scenarios for full steps
payment_pendingPayer displays beneficiary IBAN > "Complete the bank transfer" > "I confirm". See Smart Transfer scenarios for full steps
payment_createdFrom payment_pending: simulate a Credit with the expected amount
payment_partialFrom payment_pending: simulate a Credit with a lower amount than expected
payment_cancelledCancel the session via Console
payment_expiredSet a 1-second expiry on session creation

Refund

StatusHow to reach it
session_initiatedCreate a refund via Console (Actions > Refund) or API. See Testing refunds for the full workflow
payment_createdSimulate a Debit with status booked
payment_unsuccessfulSimulate a Debit with status rejected

Request to Pay

StatusHow to reach it
payment_waitingCreate an RTP session — the link is generated and waiting for the payer
payment_createdPayer clicks the RTP link and completes payment through Connect
payment_cancelledCancel the session via Console
payment_expiredSession expiry time is reached

Related guides

GuideWhat it covers
Testing Complete Payment FlowsFull end-to-end testing workflow
Demo BankHow to trigger each status using the Demo Bank
Event SimulatorCredit, Debit, and Bank Transition simulations