When you submit a payment, you get a result code that indicates the current status of the payment. You can use the result code to inform the shopper about the payment status. The status of a payment can sometimes change after you get the result code, so we recommend that you do not use the result code to update your order management system.
Requirements
Before you begin, take into account the following requirements.
| Requirement | Description | 
|---|---|
| Integration type | An online payments integration. | 
| API credential roles | Make sure that you have the following roles: 
 | 
Getting the result code
How you get the result code depends on the server-side flow that your integration uses.
| Server-side flow | Description | 
|---|---|
| Sessions flow | When the payment flow finishes, you get the resultCodeobject from Drop-in or the Component. | 
| Advanced flow | For payments that do not require an additional action, you get the resultCodeparameter in the  /payments response.For payments that require an additional action, you get the resultCodeparameter in the  /payments/details response. | 
Authentication-only result codes
For standalone authentication-only integrations, the result codes indicate if you need to take any action before you can proceed to authorise the payment.
| resultCode | Description | Action to take | 
|---|---|---|
| AuthenticationNotRequired | The transaction does not require 3D Secure 2 authentication. You can check the authenticationNotRequiredReasonfield to learn why authentication was not required. | Proceed to authorise the payment. | 
| AuthenticationFinished | The payment has been successfully authenticated with 3D Secure 2. | Collect the 3D Secure 2 authentication data that you need to authorise the payment. | 
3D Secure 2 authentication result codes
For payment flows that require 3D Secure 2 authentication, the result codes indicate the action to take to authenticate the shopper.
| resultCode | Description | Action to take | 
|---|---|---|
| ChallengeShopper | The issuer requires authentication from the shopper, for example through facial recognition or entering a code received on their phone. | Initiate the challenge flow to present the challenge to the shopper, and submit the result to Adyen. | 
| IdentifyShopper | The issuer requires authentication from the device the shopper is using. | Initiate the frictionless flow to get the shopper's device fingerprint, and submit the result to Adyen. | 
| RedirectShopper | The issuer requires the shopper to provide authentication in an an external web page or app. | Redirect the shopper to complete the authentication. | 
Intermediate result codes
For some payment methods, you can receive an intermediate result code indicating the payment has not reached a final state yet. This happens when a payment is completed but the final status of the payment cannot be obtained, or for flows where it takes a while before the shopper can complete the payment.
| resultCode | Description | Action to take | 
|---|---|---|
| Received | Indicates the payment has successfully been received by Adyen, and will be processed. This is the initial state for all payments. | Inform the shopper that you have received their order, and are waiting for the final payment status. | 
| Pending | The payment order was successfully received but the final status of the payment is not available yet. This is common for payment methods with an asynchronous flow. | Inform the shopper that you have received their order, and are waiting for the shopper to complete the payment. | 
| PresentToShopper | Indicates that there is additional information that you need to present to a shopper, so that they can use it to complete a payment, for example a voucher. | Present the voucher to the shopper, and inform the shopper that you are waiting for them to complete the payment. | 
When the shopper has completed the payment successfully, you will receive a successful AUTHORISATION webhook.
For some payments, it can take minutes, hours, or even days to be completed.
Partial authorisation result codes
If you accept partial authorizations for card payments, you receive a result code that indicates the issuing bank authorised a partial amount instead of the full order amount.
| resultCode | Description | Action to take | 
|---|---|---|
| PartiallyAuthorised | The payment has been authorised for a partial amount. This happens when the cardholder has insufficient funds. | Inform the shopper that their payment has been partially authorised. You can now: | 
Final state result codes
These result codes indicate that the payment has reached a final state.
| resultCode | Description | Action to take | 
|---|---|---|
| Authorised | The payment was successfully authorised. | Inform the shopper that the payment was successful. You also get a webhook with an updated payment status that you can use to update your order management system. If you are using manual capture, you also need to capture the payment. | 
| Cancelled | The payment was cancelled (by either the shopper or your own system) before processing was completed. | Inform the shopper that their payment was cancelled and check if they want to continue with their order. | 
| Error | There was an error when the payment was being processed. | Inform the shopper that there was an error processing their payment. | 
| Refused | The payment was refused. | Inform the shopper that their payment was refused and ask them to try the payment again, for example, by using a different payment method or card. | 
For payments that are not Authorised, you will receive a 
  refusalReason
, indicating the cause of the error. We do not recommend disclosing this refusal reason to the shopper.