Success and Error types

Results returned from WalletCallback

WalletSuccess

The Wallet Success model provides information regarding the successful operation. This information can include data. The method being called defines what returned data to expect.

FieldDescriptionType
typeSee SuccessTypeenum SuccessType(successCode: Int)
messageString?
dataType is based on the method called. See 'WalletCallback', 'SDK Methods', 'Definitions' and 'Sequence diagrams'T? | Any?

SuccessType

Returned type from WalletCallback onSuccess(WalletSuccess)

EnumDescription
GENERAL_SUCCESSThe SDK method called is finished and the outcome was successful
AUTHENTICATE_SUCCESS

Partial open wallet flow.
From "getOpenWalletUrl".
Distinguishes between if a user has been onboarded with Secure ID or just authenticated; Consumer has authenticated with Secure ID to see the wallet.

Consumer has been authenticated and can access the Wallet dashboard. Open the URL returned in data: AuthenticateData. See 'Definitions'.

ONBOARDING_SUCCESS

Partial open wallet flow.
From "getOpenWalletUrl".
Distinguishes between if a user has been onboarded with Secure ID or just authenticated; Consumer has been onboarded with Secure ID to see the wallet.

Consumer has been onboarded and can access the Wallet dashboard. DPA can decide what to do before opening the URL returned in data: AuthenticateData. See 'Definitions'.

BROWSER_CLOSEDConsumer closed the system browser opened via "openURL"

WalletException

The Wallet Exception model provides information as to why a method failed.

The information is targeted towards DPA developers, and should be mapped to more informative and translated end-user messages.

FieldTypeDescription
typeenum ExceptionType(errorCode: Int)See ExceptionType
messageStringFormat: 'action': A 'type' error occurred during 'internalAction': 'reason' Action = the action of the method being called, e.g. Open wallet or Get payment information
Type = The origin of the error: "Network" (Aera Wallet API), "SID" (Aera Secure ID SKD) or "Wallet" (Wallets SDK)
InternalAction = More specific location of where the exception was reported, e.g. "during signing"
Reason = The message from the origin, either Wallets SDK or message from Aera Secure ID SDK/Aera Wallet API
codeInt | LongSame as type.errorCode
externalCodeString?

The original error code from the origin, where applicable (Aera Wallet API/Aera Secure ID SDK).

Aera Wallet API errors are defined under Aera Wallet Api Response codes

timestampString?When the exception occurred, if passed from Aera Wallet API
cidString?The correlation ID, a reference for easier debugging, if passed from Aera Wallet API
cidString?The type of the correlation ID when present, e.g. "sessionId"
causeThrowable? | NSError?The original error causing the reported exception, when applicable
domainStringcom.aerahost.aerawalletssdk (android)

ExceptionType

Returned type from WalletCallback onError(WalletException)

FieldTypeDescription
errorCodeIntThe code associated with the ExceptionType enum

The error codes returned from the Wallets SDK are split into 3 error ranges based on origin

  1. Wallets SDK errors (6800-68099)
  2. SID_SDK: Aera Secure ID SDK errors (68300-68399)
  3. NETWORK: Aera Wallet API errors (68100-68199)

Potential mitigations

  • Look at the externalCode and other fields for more information
  • Map error messages to understandable end-user messages, and provide and display the "cid" and "timestamp" when present. Screenshots by end-users could then help Aera with debugging.
  • Securely report information from DPA to DPA backends to be able to report issues back to Aera
  • Contact Aera Support when an issue does not seem to resolve

👇 Wallet SDK errors

errorCodeNameDescription
68000UNKNOWN_ERROR
68001GENERAL_ERROR
68003SESSION_ERRORA session could not be found or validated
68005ACTION_NOT_SUPPORTEDThe wallet could not handle the requested action, e.g. open wallet
68006MISSING_DATA_ERRORAn internal operation could not be conducted because the Wallet SDK was missing required data.
68007URL_NOT_SUPPORTED_ERRORThe URL provided to "openURL" is not valid or not whitelisted by the Wallets SDK and can not be opened.
68008INVALID_FORMAT_ERRORThe Wallets SDK has validated a value, for instance session ID, which is in the wrong format.
🆕68009REQUEST_ENCODING_ERRORFailed to serialize the request before sending
🆕68010NETWORK_CONNECTION_ERRORNo network, or the connection to the server failed
🆕68011SECURE_CONNECTION_ERRORTLS/SSL handshake failed, or certificate validation rejected
🆕68012RESPONSE_DECODING_ERRORServer responded, but the body could not be parsed

Secure ID SDK errors

The errorCodes below are mapped from external codes from Secure ID. The external codes are available in the 'externalCode' field.

errorCodeNameDescription
68100SID_SDK_DEVICE_NOT_SUPPORTED_ERRORThe device is not supported by Secure ID in its current state. E.g. The API level is too low, device is not secure or device is not compatible with other requirements
68101SID_SDK_NOT_INITIALIZED_ERRORUser is not onboarded with Secure ID on this device
68102SID_SDK_INCOMPATIBLE_ERRORThe Secure ID SDK or app version is too old or has been blocked
68103SID_SDK_INITIALIZATION_ERRORAn error occurred during onboarding via Aera Secure ID SDK.
68104SID_SDK_SIGN_ERRORAn error occurred during signing, e.g. to open wallet or sign payment. An error occurred, app pin could have been revoked, biometrics was cancelled by user etc.
68105SID_SDK_GENERAL_ERROR
68106SID_SDK_USER_CANCELLED_ERRORUser cancelled the operation
68107SID_SDK_NETWORK_ERRORA Network communication, HTTP, or SSL error occurred between Secure ID SDK and other backend systems.

Wallet API errors

The errorCodes below are mapped from response codes from the Wallet API. The response codes are available in the WalletException 'externalCode' field. All Wallet API response codes values are defined under Aera Wallet Api Response codes.

errorCodeNameDescription
68300NETWORK_GENERAL_ERROR
68301NETWORK_INTERNAL_SERVER_ERRORAn error occurred inside a backend system. Must be fixed by Aera.
68302NETWORK_CLIENT_ERRORThe Wallets SDK request did not meet backend requirements.
E.g. invalid session, bad input format, invalid dynamic SDK ID. Must be fixed by client.
68303NETWORK_UNAUTHORIZED_ERRORThe end-user was not successfully authorized, e.g. invalid session credentials, could not verify signature, or consumer mismatch
68304NETWORK_INADEQUATE_SECURITY_LEVEL_ERRORThe operation could not be conducted because one or more security requirements were not met
68305NETWORK_FORBIDDEN_OPERATION_ERRORThe operation could not be conducted. The operation is forbidden or is not possible to conduct right now, e.g. when a transaction state has changed (like trying to cancel a signed transaction)
68306NETWORK_INVALID_REDIRECT_URI_ERRORThe authRedirectUri provided to "getOpenWalletUrl" or "deleteWallet" is invalid or not whitelisted by WLW
68350NETWORK_PAYMENT_INSUFFICIENT_FUNDS_ERRORNot enough balance to process the transaction
68351NETWORK_PAYMENT_AUTHORIZATION_FAILED_ERROR

Authorization failed.
For full payment: Authorization failed for all instruments.

For partial payment:
Authorization failed for fallback instrument.

68352NETWORK_NO_VALID_PAYMENT_INSTRUMENTS_ERRORNo payment instruments are active and can be used for the payment

Did this page help you?