Skip to content

    Transaction State Transitions

    Overview

    Concardis Payengine comes with an order and state transition concept that allows you as merchant and/or integrator to get information on the current state of a payment, i.e. if funds have been transferred or if a customer got declined by a processor etc.

    Based on the dedicated status that is always returned through our API, you may take appropriate actions, such as shipping the goods, contact the customer for clarification or similar.

    It's worth mentioning that "listening" to the Payengine order and transaction state changes is enough to deal with any possible business case that may arise with any supported payment method- you don't need to translate each payment method's individual states. This job is done by Concardis Payengine, offering you a sole source of aggregated payment status information.

    This following section allows you to understand (also in the context of a certain payment method that was used by the customer)

    • a) what each status means

    • b) when a certain status occurs

    • c) what a possible following status could be

    State Transitions: Order

    Payengine payment transactions always need a parenting entity: the order. An order carries all required information to perform multiple types of transactions, that is a customer, a persona, shipping & billing addresses and payment information. Before you can debit a payment instrument (e.g. a credit card of your customer), you need to create an order. Therefore, the initial status of an order is CREATED. During the 'lifetime' of an order, it remains OPEN but as soon as no further action can follow, it will change to CLOSED.

    State Transitions: Order
    STATUSMeaning & RulesCardsPayPalPaydirectRatepay
    CREATEDInitial Status. As long as no transaction is created within order, it remains in CREATED. As soon as first transaction is created it changes to OPEN.n/an/an/an/a
    OPENRemains until one of the amounts are used up, i.e. 100% of initial amount is refunded or 100% of initial amount in cancelled. The order gets expired by scheduler.n/an/an/an/a
    CLOSEDFinal Status. No change on order possible (i.e. no refund/cancel/debit/capture/preauth possible). API replies with according exception „no more transaction possible“ or similar.n/an/an/an/a

    State Transitions: debit & capture

    Transaction types debit and capture are both booking a certain amount on the customers payment instrument, which is the reason why state transitions are handled identically for these two transaction types. Based on the payment method and its individual payment flows, timeframes for each state transition may vary as well as the meaning behind some of the status. Both debit and capture transactions are initially CREATED and will result in a final state- either in a successful or in a failed one.

    State Transitions: debit & capture
    STATUSMeaning & RulesCardsPayPalPaydirectRatepay
    CREATEDInitial Status. As long as no contact to processor it remains in CREATED. As soon as processor is contacted it changes to PENDINGValid for 3ds. Non-3ds result in a direct change to INPROGRESS.Until customer is not redirected to any of the URLs (Success, Cancel, Failure), the status remains PENDINGUntil customer is not redirected to any of the URLs (Success, Cancel, Failure), the status remains PENDINGn/a
    PENDING(Customer) Interaction needed. Mostly for async flows (eg PayPal). Directly changes to eg INPROGRESS in case of sync flow or where needed. Might change to INPROGRESS, meaning that the data input has happened and processor can begin with processing. Might change into FAILURE, DECLINED, ABORTED and EXPIRED.Valid for 3ds. Non-3ds result in a direct change to INPROGRESS.Until customer is not redirected to any of the URLs (Success, Cancel, Failure), the status remains PENDINGUntil customer is not redirected to any of the URLs (Success, Cancel, Failure), the status remains PENDINGn/a
    IN PROGRESSData input successful. Processor is processing the transaction.n/an/an/an/a
    OKProcessing technically successful. However it is not clear yet if the funds will arrive at all. Also a following risk analysis might result in a DECLINE, depending on the following processes and/or payment method used.n/an/an/an/a
    SUCCESSFunds have been booked correctly (SEPA) or got confirmed by processor (see payment method)n/aMapped to SUCCESS status via IPNMapped to SUCCESS statusMapped to SUCCESS status
    FAILUREProcessor declined the transaction. Technical issue caused an excpetion on processor side.n/amapped to according PayPal API exceptionsmapped to according Paydirekt API exceptionsmapped to according Ratepay API exceptions
    DECLINEDEvasion / Payengine declines the transaction (Risk Engine).n/an/an/an/a
    ABORTEDCustomer aborts transaction. Mostly in async flow on processors payment page. Not supported by all payment methods.n/aif customer hits „Back to Shop“ on PP payment page and gets redirected to CancelURLif customer hits „Back to Shop“ on pd payment page and gets redirected to CancelURLn/a
    EXPIREDAutomatic expiration of non-handled transactions (ie pending for X days)

    Note: Especially in the async flow (but not limited to it), a status update might come in through backchannel/processor notification service (eg IPN for paypal). These updates will change the evasion transaction state as descibed in the table, even after checkout has happened.

    State transitions: preauth

    Transaction type preauth (preauthorisation) is a non-booking reservation on the according customers payment instrument. It needs to be captured by the merchant, either through API or using the Payengine Merchant Center. A preauth is handled quite similarly to both debit and capture with regards to state transitions, the most important differences are expiration times and the lack of final status SUCCESS (which expresses that funds have been successfully transferred which is not the case within a preauth).

    State transitions: preauth
    STATUSMeaning & RulesCardsPayPalPaydirektRatepay
    CREATEDInitial Status. As long as no contact to processor it remains in CREATED. As soon as processor is contacted it changes to PENDING.Valid for 3ds. Non-3ds result in a direct change to INPROGRESS.Until customer is not redirected to any of the URLs (Success, Cancel, Failure), the status remains PENDINGUntil customer is not redirected to any of the URLs (Success, Cancel, Failure), the status remains PENDINGn/a
    PENDING(Customer) Interaction needed. Mostly for async flows (eg PayPal). Directly changes to eg INPROGRESS in case of sync flow or where needed. Might change to INPROGRESS, meaning that the data input has happened and processor can begin with processing. Might change into FAILURE, DECLINED, ABORTED and EXPIRED.Valid for 3ds. Non-3ds result in a direct change to INPROGRESS.Until customer is not redirected to any of the URLs (Success, Cancel, Failure), the status remains PENDINGUntil customer is not redirected to any of the URLs (Success, Cancel, Failure), the status remains PENDINGn/a
    IN PROGRESSData input successful. Processor is processing the transaction.n/an/an/an/a
    OKProcessing technically successful. However it is not clear yet if the funds will arrive at all. Also a following risk analysis might result in a DECLINE, depending on the following processes and/or payment method used.n/an/an/an/a
    FAILUREProcessor declined the transaction. Technical issue caused an excpetion on processor side.n/amapped to according PayPal API exceptionsmapped to according Paydirekt API exceptionsmapped to according Ratepay API exceptions
    DECLINEDEvasion / Payengine declines the transaction (Risk Engine).n/an/an/an/a
    ABORTEDCustomer aborts transaction. Mostly in async flow on processors payment page. Not supported by all payment methods.n/aif customer hits „Back to Shop“ on PP payment page and gets redirected to CancelURLif customer hits „Back to Shop“ on pd payment page and gets redirected to CancelURLn/a
    EXPIREDAutomatic expiration of non-handled transactions (ie pending for X days).14days for pending transactions ( 3DS not run ), 365 days for OK → Expired, if no capture in this timeframe365 days365 days180 days

    State transitions: cancel & refund

    Whereas cancel allows you to reverse a non-booked transaction (i.e. a preauth) only, a refund is the equivalent for booked transactions (i.e. debit and capture).

    STATUSMeaning & RulesCardsPayPalPaydirektRatepay
    CREATEDInitial Status. As long as no contact to processor it remains in CREATED. As soon as processor is contacted it changes to PENDING.n/an/an/an/a
    IN PROGRESSData input successful. Processor is processing the transaction.n/an/an/an/a
    OKProcessing technically successful. However it is not clear yet if the funds will arrive at all. Also a following risk analysis might result in a DECLINE, depending on the following processes and/or payment method used.n/an/an/an/a
    SUCCESSFunds have been booked correctly (SEPA) or got confirmed by processor (see payment method).n/an/an/an/a
    FAILUREProcessor declines the transaction (rule engine). Technical issue caused an exception on processor side.n/an/an/an/a
    TypeGeneral DescriptionCardsPayPalPaydirektRatepay
    cancelCancels an amount up to 100% of preauth amount. A preauth must exist. The status of a preauth must be OK.n/an/an/an/a
    refundReverts funds to a specific payment instrument used for a debit or capture. Up to 100% of captured amount (capture+debit) can be refunded. Captured amount must exist. The status of the debit and/or capture transactions must be SUCCESS.n/an/an/an/a
    captureBooks up to 100% of a preceding preauth. Preauth must be in status OK.n/an/an/an/a

    Was this helpful?

    What was your feeling about it?