# Result codes

The following table lists the result codes that the callbacks may return.

| **Code** | **Message** | **Return from** | **Description** | **Further action** |
| --- | --- | --- | --- | --- |
| 10000 | SUCCESS | PROVISION | Success | N/A |
| 10001 | PROVISION FAILED | PROVISION | Card activation phase exception | Prompt the user of the exception and guide the user to retry. |
| 10002 | DEVICE UNSAFE | PROVISION | The device is not secure and refuses to activate the card. For example, the app runs in the ROOT environment or a simulator. | Prompt the user of the exception and guide the user to retry. |
| 10003 | CDCVM REQUIRED | TRANSACTION | Authentication is required. | Trigger the authentication logic. |
| 10004 | INNER EXCEPTION | PROVISION | SDK internal exception | Prompt the user of the exception and guide the user to retry. |
| 10005 | NETWORK EXCEPTION | PROVISION | Network exception | Prompt the user of the exception and guide the user to retry. |
| 10006 | SDK NOT CONNECTED | PROVISION | The business failed because the user was not logged in. | Call the [**connect**](connect) API and then retry. |
| 10007 | INSUFFICIENT CREDENTIALS | PROVISION | The transaction failed due to missing transaction Credentials. | N/A |
| 10008 | TOKEN UNAVAILABLE | PROVISION | The transaction failed due to card unavailability. The result code is returned in the callback of the **onTransactionFailed** listener instead of the **onTransactionStart** listener. | Prompt the user of the abnormal card status and guide the user to restore the card state. |
| 10009 | TOKEN DOES NOT EXISTS | PROVISION | The transaction failed because the card did not exist. The result code is returned in the callback of the **onTransactionFailed** listener instead of the **onTransactionStart** listener. | Guide the user to activate the card. |
| 10010 | ACTIVATION IN PROGRESS | PROVISION | Card activation is in progress. | Poll for the result. Wait for the card activation to finish before proceeding. |
| 10011 | INVALID INPUT PARAMETERS | PROVISION | Incorrect request parameter. For example, in the scenario of secondary confirmation for card activation, the passed-in request parameter is incorrect. | Check whether the request parameters are correct and valid. |
| 10012 | REPLENISH DENIED | PROVISION | No need for replenishment as local transaction credentials are sufficient. | N/A |
| 10013 | ACTIVATED WITHOUT CREDENTIALS | PROVISION | The card activation parameters did not trigger the automatic replenishment of the transaction credentials or the automatic replenishment failed. | Call the [**replenish**](replenish) API to replenish credentials. |
| 10014 | TOKEN STATUS NOT CONFIRMED | PROVISION | The normal result of silent activation. | Guide the user to confirm the activation. |
| 10015 | LOCK TOKEN IS NOT SUCCESS | PROVISION | Failed to lock the card. | Retry |
| 10016 | UNLOCK TOKEN IS NOT SUCCESS | PROVISION | Failed to unlock the card. | Retry |
| 10017 | TOKEN ALREADY EXISTS | PROVISION | Failed to activate the card because the local card information already existed. | Ignore the result code. |
| 10018 | REPLENISH FAILED | PROVISION | Failed to replenish transaction credentials. | Call the [**replenish**](replenish) API again. If the result persists, display the result message to the user and instruct them to retry card activation. |
| 10019 | ACTIVATION IS NOT STARTED | PROVISION | Card activation has not started or has already ended. | N/A |
| 10020 | DEACTIVATED | TRANSACTION | The signal between the mobile phone and the POS machine is interrupted, possibly because the mobile phone has left the NFC signal range. | Guide the user to tap the POS machine again with the mobile phone. |
| 10021 | CANCEL | PROVISION | The user has canceled the card activation. | N/A |
| 10022 | DECLINE | TRANSACTION | The transaction is denied. | Prompt the user of the situation. |
| 10023 | LOCAL LOCK TOKEN IS NOT SUCCESS | PROVISION | Failed to lock the card locally. | Retry |
| 10024 | LOCAL UNLOCK TOKEN IS NOT SUCCESS | PROVISION | Failed to unlock the card locally. | Retry |
| 10025 | UNSUPPORTED REGION | TRANSACTION | The domestic transaction is not supported. | Prompt the user of the situation. |
| 10026 | UNSUPPORTED TRANSIT | TRANSACTION | Transportation scenarios are not supported. | Prompt the user of the situation. |
| 10027 | UNSUPPORTED US FUEL | TRANSACTION | Gas stations in America are not supported. | Prompt the user of the situation. |
| 10028 | DECLINE BY APP | TRANSACTION | The transaction is denied by the app. | N/A |
| 10029 | CONTEXT NOT MATCH | TRANSACTION | The transaction context has changed. | N/A |
| 10030 | AMOUNTLEVEL CHECK FAILED |  | The password-exempted amount level check failed. | N/A |
| 10031 | AMOUNTLEVEL MAPPING DOES NOT EXIST | PROVISION | The password-exempted amount level is not configured. | N/A |
| 10032 | AMOUNTLEVEL QUERY FAILED | PROVISION | The password-exempted amount level inquiry failed. | N/A |
| 10033 | AMOUNTLEVEL DOES NOT EXIST | PROVISION | The password-exempted amount level that required authentication does not match that set in the server. | N/A |
| 10034 | REGION UNSUPPORTED PURCHASE | TRANSACTION | This region does not support the transaction type. Only refunds, cash withdrawals, transit transactions, and cashback transactions are supported. | N/A |
| 10035 | REGION UNSUPPORTED REFUND | TRANSACTION | The region does not support refunds. | N/A |
| 10036 | REGION UNSUPPORTED CASH | TRANSACTION | The region does not support cash withdrawals. | N/A |
| 10037 | REGION UNSUPPORTED TRANSIT | TRANSACTION | The region does not support transit transactions. | N/A |
| 10038 | REGION UNSUPPORTED PURCHASE WITH CASHBACK | TRANSACTION | The region does not support purchase with cashback. | N/A |
| 10039 | SERVER VERIFY REJECT | PROVISION | The server verification is rejected. | N/A |
| 10040 | USER KYC NOT QUALIFIED | PROVISION | The user's KYC is not qualified. | N/A |
| 10041 | RISK REJECT | PROVISION | Failed to issue a card due to risk issues. | N/A |
| 10042 | APP VERSION TOO OLD | PROVISION | The app version is too old and no longer supported. | N/A |
| 11001 | APP\_CUSTOM\_DECLINE\_1 | TRANSACTION | The app declines the transaction for an MPP-defined custom reason. > **Note**: For details on declining a transaction for a custom reason, see the [**TransactionPermit**](transaction_permit) SPI. | Take actions based on the MPP's decline reason. |
| 11002 | APP\_CUSTOM\_DECLINE\_2 | TRANSACTION | The app declines the transaction for an MPP-defined custom reason. > **Note**: For details on declining a transaction for a custom reason, see the [**TransactionPermit**](transaction_permit) SPI. | Take actions based on the MPP's decline reason. |
| 11003 | APP\_CUSTOM\_DECLINE\_3 | TRANSACTION | The app declines the transaction for an MPP-defined custom reason. > **Note**: For details on declining a transaction for a custom reason, see the [**TransactionPermit**](transaction_permit) SPI. | Take actions based on the MPP's decline reason. |
| 11004 | APP\_CUSTOM\_DECLINE\_4 | TRANSACTION | The app declines the transaction for an MPP-defined custom reason. > **Note**: For details on declining a transaction for a custom reason, see the [**TransactionPermit**](transaction_permit) SPI. | Take actions based on the MPP's decline reason. |
| 11005 | APP\_CUSTOM\_DECLINE\_5 | TRANSACTION | The app declines the transaction for an MPP-defined custom reason. > **Note**: For details on declining a transaction for a custom reason, see the [**TransactionPermit**](transaction_permit) SPI. | Take actions based on the MPP's decline reason. |