Account Verification Webhook

Account Verification webhooks are sent when a customer confirms their account using Account Verification

Webhooks are a crucial mechanism for merchants to receive notifications about Account Verification creation and Account Verification status changes. All Account Verification webhooks have a webhook_type that begins with ACCOUNT_VERIFICATION_.

Webhook processing and Security

Yaspa Webhooks are sent via HTTPS and are signed. For information on processing and around Webhook security, see the section here - Webhooks.

Pay-in Webhook Events

WebhookDescriptionPay-in Transaction Status
ACCOUNT_VERIFICATION_CREATEDAccount verification journey was createdCREATED
ACCOUNT_VERIFICATION_REDIRECTThe user has selected a bank and been redirected to that bankPENDING_USER_AUTHORISATION
ACCOUNT_VERIFICATION_DECISIONAccount verification journey was completed.ACCEPTED or CANCELLED or FAILED
ACCOUNT_VERIFICATION_ERRORAn error occurredERROR

Account Verification Webhook payload and Parameters

The Account Verification webhooks are HTTPS post requests and a typical example of the request body is as follows:

{
  "type": "ACCOUNT_VERIFICATION_DECISION",
  "data": {
    "id": "68625365e58f37487929e820",
    "citizenTransactionId": "b2f0bbfa-f5c9-7047-b8fc-4b4c11",
    "merchantId": "67cb0ccd3790837e4659c60e",
    "merchantTradingName": "Stagecoach Alpha RP",
    "customerIdentifier": "mq5l1rkols20",
    "financialServiceProvider": "CITIZEN_TEST_BANK",
    "version": "2",
    "journeyType": "HOSTED_ACCOUNT_VERIFICATION",
    "transactionType": "ACCOUNT_VERIFICATION",
    "transactionStatus": "ACCEPTED",
    "creationDate": 1751274341597,
    "testParameters": {},
    "language": "en",
    "accounts": [
      {
        "id": "0daec12a-0958-452e-8be3-f2b80cd1517f",
        "accountName": "John Smith Current",
        "accountHolderName": "John Smith",
        "number": "12345678",
        "partialAccountNumber": "676",
        "sortCode": "040075",
        "iban": "GB71REVO00000000000000",
        "partialIban": "496",
        "bic": "REVOGB21",
        "balance": "10.00",
        "type": "CURRENT",
        "bank": "CITIZEN_TEST_BANK"
      },
      {
        "id": "4dc41311-4793-4841-aa66-73fb8a642fc9",
        "accountName": "John Smith Spend",
        "accountHolderName": "John Smith",
        "number": "87654321",
        "partialAccountNumber": "676",
        "sortCode": "123456",
        "iban": "GB71REVO00000000000001",
        "partialIban": "496",
        "bic": "REVOGB21",
        "balance": "10.00",
        "type": "CURRENT",
        "bank": "CITIZEN_TEST_BANK"
      }
    ]
   }
}

There will often be other parameters in the body, such as some of the optional parameters will be carried through the system, as such it's critically important merchant servers do not use strict mode parsing on the above JSON format, otherwise there will be failures to read data from Yaspa.

Parameter list:

ParameterDescription
citizenTransactionIdCitizen transaction ID
merchantIdThe ID of your Merchant
merchantTradingNameThe trading name of your Merchant
customerIdentifierCustomer ID in your system
transactionStatusCurrent status of the transaction (e.g. CREATED)
creationDateDate of creation
versionVersion of the API
accounts.idAccount Id. This can be used for direct Payouts, to make payouts directly to this account.
accounts.accountNameName of the account (eg Current/Credit)
accounts.accountHolderNameName of the accountholder
accounts.numberbank account number (UK)
accounts.partialAccountNumberThree digits of decrypted bank account number (UK)
accounts.sortCodeBank account sort code (UK)
accounts.ibanIBAN (EU)
accounts.partialIbanThree digits decrypted of IBAN (EU)
accounts.bicBank identifier (EU, eg Swift code)
accounts.balanceBalance of the account
accounts.typeAccount type
accounts.bankBank of the account

Pay-in Status

The events above each contain a status; the table below provides more details on what each status means.

TransactionStatusDescriptionTerminal Status
CREATEDThe journey has begun and the user is about to select the bank he want to verify the account from
PENDING_USER_AUTHORISATIONThe user has selected the bank he wants to verify and has been redirected to his bank
PENDING_ASPSP_ACCEPTANCEThe request is processing from the bank
ACCEPTEDThe transaction has been completedYes
CANCELLEDThe transaction has been cancelled by the userYes
FAILEDThe transaction failedYes
ERRORAn error occured processing the transactionYes