# Status Changes Over the Lifecycle
source: https://developer.mastercard.com/mastercard-processing-core/documentation/guides/status-changes/index.md

Real-life events are reflected in the CMS objects, which change their statuses after executing operations. Statuses instruct the CMS on how to handle a specific object. They determine which actions are allowed and which are forbidden, for example, processing payment transactions. During onboarding, you can customize the actions related to each object status, but the following solutions follow industry standards and best practices.

## Account Contract Status {#account-contract-status}

There are three account contract status values in the `statusCode` field of the `AccountContractStatusData` object, representing the CMS account contract object. Status transitions during the account lifecycle are a one-direction flow.

![](https://static.developer.mastercard.com/content/mastercard-processing-core/uploads/account-contract-status.png)

| **Status code** |   **Status name**    |                              **Description**                              | **Authorization** | **Financial operations** | **Chargebacks** |
|-----------------|----------------------|---------------------------------------------------------------------------|-------------------|--------------------------|-----------------|
| 00              | Account OK           | Account created and ready to use.                                         | Accept            | Accept                   | YES             |
| 00c             | Account to be closed | Account closure procedure was started and is ongoing (transition period). | Decline           | Accept                   | YES             |
| 14              | Account closed       | Account is closed.                                                        | Invalid contract  | Invalid contract         | NO              |

**Authorization:** The Authorization column explains the behaviour regarding authorizations. *Accept* indicates that the contract is valid and the authorization will be accepted if other conditions are met. *Decline* indicates that the authorization will be rejected. *Invalid contract* indicates that the account contract is treated as not existing. Financial documents will be posted to the dispute contract.

**Financial operations:** The Financial operations column explains the behavior regarding financial operations. These are transactions posted by an issuer or advice messages from IPM files, such as offline transactions and chargebacks. *Accept* indicates that the contract is valid and the operation will be posted. *Invalid contract* indicates that the account contract is treated as not existing.

**Chargebacks:** The Chargebacks column defines if the cardholder has chargeback rights.

Apart from `statusCode` and `statusName`, the `AccountContractStatusData` object also contains `externalStatusCode` and `externalStatusName` fields that are used by the CMS UI (Workbench).
Note: Closing an account contract (changing the status to `14`) will deactivate all linked card contracts (the card contract status will be changed to `57`). For more information, refer to [Card contract status](https://developer.mastercard.com/mastercard-processing-core/documentation/guides/status-changes/index.md#card-contract-status).

## Card Contract Status {#card-contract-status}

The following table lists the available `statusCode` values of the `CardContractStatusData` object which relates to the CMS card contract object. The `CardContractStatusData` object also contains `externalStatusCode` and `externalStatusName` fields that are used by the CMS UI (Workbench).

| **Status code** |                      **Description**                       |  **Authorizations**  | **Financial operations** | **Chargebacks**  | **Priority** |
|-----------------|------------------------------------------------------------|----------------------|--------------------------|------------------|--------------|
| 00              | Ready for use                                              | Accept               | Accept                   | Yes              | 1            |
| 04              | Blocked due to issuer reasons.                             | Decline and pick up. | Accept                   | Yes              | 2            |
| 05              | Temporary blockade usually upon cardholder's request.      | Decline              | Accept                   | Yes              | 1            |
| 14              | Final state of card's lifecycle. Set automatically by CMS. | Invalid contract     | Invalid contract         | No               | 3            |
| 41              | Card was lost.                                             | Decline and pick up. | Accept                   | Selected reasons | 2            |
| 43              | Card was stolen.                                           | Decline and pick up. | Accept                   | Selected reasons | 2            |
| 57              | Card was deactivated upon issuer's request.                | Decline              | Accept                   | Selected reasons | 3            |
| 59              | Temporary blockade usually upon issuer's request.          | Decline              | Accept                   | Yes              | 1            |

The Authorizations column shows the action advice during the attempted transaction authorization:

* **Accept**: The card is valid. If other conditions are met, the authorization is accepted.
* **Decline**: The authorization is rejected. Refund authorizations are still accepted.
* **Decline and pick up**: The authorization is rejected, and the card will be picked up (for example, by ATM). Refund authorizations are still accepted.
* **Invalid contract**: The card contract is treated as if it does not exist.

**Financial operations:** The Financial operations column explains the behaviour regarding financial operations. These are the transactions posted by an issuer or advice messages from IPM files, such as offline transactions and chargebacks. *Accepted* indicates that the contract is valid and the operation will be posted. *Invalid contract* indicates that the card contract is treated as not existing.

**Chargebacks:** The Chargebacks column defines if the cardholder has chargeback rights.

The Chargeback column defines whether the cardholder has a chargeback right. *Selected reasons* indicate that only a specific group of reasons are allowed for a given status. For more information on chargeback procedures, contact your Mastercard Processing representative.

The Priority column defines the hierarchy. It is impossible to set a status with a lower priority than the current one. For example, if the card has status `41` with assigned priority 2, it cannot be changed to any status with assigned priority equal to 1. It can only change to any status with priority 2 or 3.

The following diagram depicts all possible card contract `statusCode` transitions.

![](https://static.developer.mastercard.com/content/mastercard-processing-core/uploads/card-contract-statuscode-transition.png)
Note: The CMS automatically changes the card contract status to `14 Card Closed` for the cards that have been in any of the following statuses for 24 months (or other defined value):

* \[04\] Pick up issuer reasons
* \[41\] Pick up lost
* \[43\] Pick up stolen
* \[57\] Deactivated

<br />

The potential chargeback is enabled for 24 months. If you close the parent account contract, you will also deactivate all linked card contracts. The card contracts status will be changed to `57 Deactivated`.

## Card Contract Production Status {#card-contract-production-status}

The `productionStatus` field stores the status of a card and resides in a `CardContractStatusData` object. The `productionStatus` can be retrieved by sending the `GET` request to the `/cards/{card_contract_id}` endpoint.

The following table lists the values for the `productionStatus`.

|      **Values**      |                                           **Description**                                           |
|----------------------|-----------------------------------------------------------------------------------------------------|
| Locked               | This corresponds to an issued but un-activated physical card.                                       |
| Marked               | The card contract is marked for production.                                                         |
| Sent                 | The card contract's data has been exported from the PIN management module.                          |
| Ready                | The card contract's data has been imported from the PIN management module. The card is activated.   |
| To close             | Used if the previous card contract plastic was deactivated.                                         |
| To request           | The smart card applet is ready to be sent to a third-party vendor (personalization bureau).         |
| Waiting for Response | The smart card applet is waiting for a response from a third-party vendor (personalization bureau). |
| Waiting for Subs     | The smart card is waiting for a response from a third-party vendor (personalization bureau).        |

## Card Plastic Status {#card-plastic-status}

The following diagram illustrates the available card `Plastic` statuses and their transitions. The listed values are stored in the `status` field of the `Plastic` object related to the `CardContractPlastics` array object which stores a list of all `Plastic` fields under a specific card contract.

![](https://static.developer.mastercard.com/content/mastercard-processing-core/uploads/card-plastic-statuses.png)

| **Status** |                                                                                        **Description**                                                                                         | **Payment transactions** |
|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------|
| Inactive   | The `Plastic` object is created and the physical card is in production. This status is used to prevent the usage of the card before activation.                                                | Rejected                 |
| Locked     | The `Plastic` object is created and the physical card is produced, but it is not active. This status is used to prevent the usage of the card in the phase of card delivery to the cardholder. | Rejected                 |
| Active     | The `Plastic` object is active and ready to use.                                                                                                                                               | Accepted                 |
| Closed     | The `Plastic` object is not active.                                                                                                                                                            | Rejected                 |
| Closed     | Optional setting -- might be set for a period when a new `Plastic` has status `Locked`.                                                                                                        | Accepted                 |

