Account Operation And Authorization

Account Operation And Authorization

Operations can be transactions received from clearing or internally generated operations ( e.g. fees, refund, chargeback...) that are posted on accounts.

Each Operation is identified by its unique operationId.

Several actions can be performed around account operations:

  • list all operations posted on a given account and for a period of time by using the API to List operations for an account
  • retrieve the detail of one operation
  • post/reverse an operation on an account, such as balance adjustment, fee, a payment operation, a reimbursement operation, a Bonus operation, load/unload operation

List Operations For An Account

The API retrieves the list of operations for a given time period and a given account.

The main input fields are:

  • The issuer ID
  • The account for which information is requested: it can be provided by using the account reference or the issuer external account reference
  • A given time period (start date / end date)

It is also possible

  • to request the list of operations for all account hierarchy, for a certain PAN only by providing a PAN reference
  • to include internal operations (failed and rejected operations) in the statements

Operations can be a scheme transaction or an operation generated internally.

In addition to the account and the period, it is possible to request the list of operations for all account hierarchy. The number of operations provided back can be indicated in the page and offset input field.

The API returns the most important operation attributes such as: the operation type, the amounts and the operation context.

For the full list of operation attributes, the "Retrieve operation" API should be used.

API links

Below an example where the list of operations is requested for:

  • the issuer 1234
  • the account 12343571015282598154
  • the period: startTime=2022-12-05T09:35:00 &endTime=2022-12-06T00:00:00

In response, 2 operations are provided back:

  • a transaction coming from the scheme
  • and the corresponding transaction fee

GET /api/v2/issuers/1234/accounts/12343571015282598154/operations?offset=100&page=0&allAccountHierarchy=true&startTime=2022-12-05T09:37:00Z&endTime=2022-12-06T00:00:00Z

Response data

{
           " ""data":" "[
              "        "{
                 "            ""issuerId":" ""1234",
                 "            ""operationIdentifier":" "{
                    "                ""operationId":" ""1000000000354873""            "
                 },
                 "            ""acquirerReferenceData":" ""74929322339221205103725",
                 "            ""cardAcceptorCity":" ""SINAGAWAKU",
                 "            ""cardAcceptorCountry":" ""392",
                 "            ""cardAcceptorName":" ""RYOKAN-HOTEL IN JAPAN C-R",
                 "            ""description":" ""RYOKAN-HOTEL IN JAPAN C-R SINAGAWAKU 392",
                 "            ""externalOperationCode":" ""1035",
                 "            ""maskedPan":" ""454617******1630",
                 "            ""merchantCategoryCode":" ""7011",
                 "            ""operationCode":" ""NORMAL_PURCHASE",
                 "            ""operationKind":" ""TRN",
                 "            ""postingDate":" ""2022-12-05T09:37:27.670+00:00",
                 "            ""reconciliationAmount":" "{
                    "                ""value": 5509,
                    "                ""exponent": 2,
                    "                ""isoCode":" ""EUR""            "
                 },
                 "            ""referenceAmount":" "{
                    "                ""value": 5509,
                    "                ""exponent": 2,
                    "                ""isoCode":" ""EUR""            "
                 },
                 "            ""reversal":" false",
                 "            ""transactionAmount":" "{
                    "                ""value": 8335,
                    "                ""exponent": 0,
                    "                ""isoCode":" ""JPY""            "
                 },
                 "            ""transactionDate":" ""2022-12-04T23:00:00.000+00:00",
                 "            ""valueDate":" ""2022-12-04T23:00:00.000+00:00",
                 "            ""cardIdentifier":" "{
                    "                ""cardReference":" ""2000000000356059""            "
                 },
                 "            ""externalOperationDate":" ""2022-12-05T09:37:27.644+00:00",
                 "            ""externalOperationReference":" ""10000000000264127",
                 "            ""externalOperationServicePoster":" ""ITP",
                 "            ""pan":" ""4546172396081630",
                 "            ""acquisitionMaterial":" ""POS",
                 "            ""cardAcceptorIdCode":" ""2722713868",
                 "            ""entryMode":" ""MAGSTRIPE",
                 "            ""approvalCode":" ""103725",
                 "            ""pointOfSaleEnvironment":" "" ",
                 "            ""mailPhoneEcommerceAndPaymentIndicator":" "" ""        "
              },
              "        "{
                 "            ""issuerId":" ""1234",
                 "            ""operationIdentifier":" "{
                    "                ""operationId":" ""1000000000354874""            "
                 },
                 "            ""description":" ""1.99 Auslandseinsatzentgelt",
                 "            ""externalOperationCode":" ""1287",
                 "            ""feeType":" ""MARKUP_FEE",
                 "            ""operationKind":" ""FEE",
                 "            ""postingDate":" ""2022-12-05T09:37:27.670+00:00",
                 "            ""referenceAmount":" "{
                    "                ""value": 110,
                    "                ""exponent": 2,
                    "                ""isoCode":" ""EUR""            "
                 },
                 "            ""reversal":" false",
                 "            ""transactionAmount":" "{
                    "                ""value": 110,
                    "                ""exponent": 2,
                    "                ""isoCode":" ""EUR""            "
                 },
                 "            ""valueDate":" ""2022-12-04T23:00:00.000+00:00",
                 "            ""externalOperationDate":" ""2022-12-05T09:37:27.721+00:00",
                 "            ""externalOperationReference":" ""8561d87e285d4fc795778c644579c207",
                 "            ""externalOperationServicePoster":" ""WLP-CAS""        "
              }"    "
           ]
        }

Retrieve Operation For An Account

The API retrieves the details of an operation for an account. It is also possible to request explicitly the operations linked to the current account by using the embedded field filled with parentOperation. A parent operation can be: the original operation when the requested operation is a reversal, relative fee operations linked to the current operation, refund/redebit operations for disputed transaction.

In response, exhaustive information is returned, including additional amounts if available (cash-back amount, DCC amount, gratuity amount, surcharge amount), exchange rate information.

API links

Below is an example where the requested operations is for:

  • the issuer 1234
  • the account 12343571015282598154
  • the operation reference: 1000000000354873

In response, some additional fields are retrieved (e.g.,: exchange rate).

GET /api/v2/issuers/1234/accounts/12343571015282598154/operations/1000000000354873

Response data

{
   " ""data":" "{
      "        ""issuerId":" ""1234",
      "        ""operationIdentifier":" "{
         "            ""operationId":" ""1000000000354873""        "
      },
      "        ""acquirerReferenceData":" ""74929322339221205103725",
      "        ""cardAcceptorCity":" ""SINAGAWAKU",
      "        ""cardAcceptorCountry":" ""392",
      "        ""cardAcceptorName":" ""RYOKAN-HOTEL IN JAPAN C-R",
      "        ""description":" ""RYOKAN-HOTEL IN JAPAN C-R SINAGAWAKU 392",
      "        ""externalOperationCode":" ""1035",
      "        ""maskedPan":" ""454617******1630",
      "        ""merchantCategoryCode":" ""7011",
      "        ""operationCode":" ""NORMAL_PURCHASE",
      "        ""operationKind":" ""TRN",
      "        ""postingDate":" ""2022-12-05T09:37:27.670+00:00",
      "        ""reconciliationAmount":" "{
         "            ""value": 5509,
         "            ""exponent": 2,
         "            ""isoCode":" ""EUR""        "
      },
      "        ""referenceAmount":" "{
         "            ""value": 5509,
         "            ""exponent": 2,
         "            ""isoCode":" ""EUR""        "
      },
      "        ""reversal":" false",
      "        ""transactionAmount":" "{
         "            ""value": 8335,
         "            ""exponent": 0,
         "            ""isoCode":" ""JPY""        "
      },
      "        ""transactionDate":" ""2022-12-04T23:00:00.000+00:00",
      "        ""valueDate":" ""2022-12-04T23:00:00.000+00:00",
      "        ""cardIdentifier":" "{
         "            ""cardReference":" ""2000000000356059""        "
      },
      "        ""externalOperationDate":" ""2022-12-05T09:37:27.644+00:00",
      "        ""externalOperationReference":" ""10000000000264127",
      "        ""externalOperationServicePoster":" ""ITP",
      "        ""pan":" ""4546172396081630",
      "        ""acquisitionMaterial":" ""POS",
      "        ""cardAcceptorIdCode":" ""2722713868",
      "        ""entryMode":" ""MAGSTRIPE",
      "        ""approvalCode":" ""103725",
      "        ""pointOfSaleEnvironment":" "" ",
      "        ""mailPhoneEcommerceAndPaymentIndicator":" "" ",
      "        ""adjustment":" false",
      "        ""brand":" ""VISA",
      "        ""cardAcceptorZipCode":" ""00000",
      "        ""cardScheme":" ""VIS",
      "        ""cardTypeCode":" ""F",
      "        ""debit":" true",
      "        ""exchangeRate": 0.007087,
      "        ""operationDate":" ""2022-12-05T09:37:27.644+00:00",
      "        ""partialOperation":" false",
      "        ""status":" ""PROCESSED",
      "        ""validationMode":" ""UNKNOWN",
      "        ""postingAccountIdentifier":" "{
         "            ""accountReference":" ""12343571015282598154""        "
      },
      "        ""productIdentifier":" "{
         "            ""issuerProductExternalReference":" ""PDT_1234_VISA_DEBIT_CLASSIC_SHARE",
         "            ""productReference":" ""PDT_1234_VISA_DEBIT_CLASSIC_SHARE""        "
      }"    "
   }
}

Post A Fee Operation For An Account

There is a high degree of flexibility regarding fee management.

Fee management can be done fully by Worldline or split between Worldline and the issuer (typically, the bank can manage subscription fees while WL would keep handling transaction fees). The API is used to post a fee operation to an account.

The fee type is mandatory, and the value must be consistent with the list defined during product definition. This list is shared between WL and the issuer during the project phase.

As an input, the account identifier can be provided by using:

  • the account reference generated by WL
  • or the issuer external account reference

Idempotency is managed by the API; that is, if the request with the same WL-Correlation-ID is sent multiple times, it will be executed only once. The response will be retrieved directly from our system.

API links

Below an example of request with the response for the:

  • Account: 12349485785398617383
  • Issuer: 1234

POST /api/v2/issuers/1234/accounts/12349485785398617383/post-fee-operation

Request data

{
           "  ""description":" ""Manual fee description",
           "  ""externalOperationReference":" ""1234F123456",
           "  ""externalOperationDate":" ""2023-01-02T14:20:34.715Z",
           "  ""externalOperationServicePoster":" ""ISSUER",
           "  ""feeType":" ""MANUAL_FEE",
           "  ""referenceAmount":" "{
              "    ""value": 1500,
              "    ""exponent": 2,
              "    ""isoCode":" ""EUR""  "
           },
           "  ""valueDate":" ""2023-01-02T00:00:00.000Z"
        }

Response data

{
           "responseMetadata":" "{
              "        ""correlationId":" ""b91d2d16-9fe2-42fb-a4ab-cc3f74a6ba31",
              "        ""statusMessage":" ""Executed successfully",
              "        ""statusCode": 200,
              "        ""responseDateTime":" ""2023-01-02T15:25:44.444+0100",
              "        ""timeTakenMs": 343 
            
           },
           "    ""data":" "{
              "        ""operationIdentifier":" "{
                 "            ""operationId":" ""1000000000376077""        "
              }"    "
           }
        }

Reverse A Fee Operation For An Account

The API is used to reverse a fee operation on an account.

As an input, the account identifier can be provided by using:

  • the account reference generated by WL
  • or the issuer external account reference

The fee type is mandatory. It must be consistent with the product definition. The list of values is shared between WL and the issuer.

The fee reference to be reversed must be provided.

Idempotency is managed by the API; that is, if the request with the same WL-Correlation-ID is sent multiple times, it will be executed only once. The response will be retrieved directly from our system.

API links

Below an example of request with the response for the:

  • Account: 12349485785398617383
  • Issuer: 1234

POST /api/v2/issuers/1234/accounts/12349485785398617383/reverse-fee-operation

Request data

{
           "reversalReason":" ""REVERSAL_ON_DEMAND",
           "  ""description":" ""reversal description",
           "  ""externalMatchingOperationReference":" ""1234F123456",
           "  ""externalMatchingOperationDate":" ""2023-01-02T14:20:34.715Z",
           "  ""externalMatchingOperationServicePoster":" ""ISSUER",
           "  ""referenceAmount":" "{
              "    ""value":-1500,
              "    ""exponent": 2,
              "    ""isoCode":" ""EUR""  "
           },
           "  ""externalOperationReference":" ""1234R123456",
           "  ""externalOperationDate":" ""2023-01-02T14:56:16.402Z",
           "  ""externalOperationServicePoster":" ""ISSUER"
        }

Response data

{
           "responseMetadata":" "{
              "        ""correlationId":" ""83cc5b32-681a-449e-8cac-21c0c40bf8bd",
              "        ""statusMessage":" ""Executed successfully",
              "        ""statusCode": 200,
              "        ""responseDateTime":" ""2023-01-02T16:01:31.184+0100",
              "        ""timeTakenMs": 196 
            
           },
           "    ""data":" "{
              "        ""operationIdentifier":" "{
                 "            ""operationId":" ""1000000000376078""        "
              }"    "
           }
        }

List Authorizations For A Given Account

This operation enables a list of authorizations associated with an account to be retrieved for a given period.

In response, for each authorization, the main properties of the authorization are provided such as the type of operation, the amount, the result code, the acceptance context.

API links

get Authorizations

Retrieve Authorization Detail For A Given Transaction Id

This operation enables the details of an authorization, identified by its transaction Id, to be retrieved.

API links

Retrieve Authorization detail by Authorization ID

Retrieve Authorization Detail For A Given Business Case Id

This operation enables the details of an authorization, identified by its business case Id, to be retrieved.

An authorization business case corresponds to a group of authorization messages; it can refer to one or several consecutive Authorizations (for example, a reservation in a hotel with a subsequent confirmation, or a purchase with a subsequent cancellation).

Each Authorization Business Case is identified by its unique businessCaseId.

The issuer can Retrieve an Authorization Business Case details using the GET /issuers/{issuerId}/accounts/{accountReference}/authorization-business-cases/{businessCaseId} API, by providing the issuerId of the Issuer, the accountReference identifying the Account and the businessCaseId identifying the Authorization Business Case.

API links

Retrieve Authorization detail by business case ID

List Business Cases For A Given Account

This operation enables the list of business Cases to be retrieved by providing in input the account reference (internal or external).

API links

Retrieve business cases

Post a Bonus Operation for an Account

The API is used to post manually a Bonus operation to an account.

A Bonus operation is used to reward or adjust a given account (in credit or in debit, e.g. in case of too high, too low or missing reward).

As an input it must be provided

  • the account, identified either by its account reference generated by WL or its issuer external account reference, on which the bonus operation has to be posted
  • the related Bonus program, defined for the issuer and the account
  • the Bonus operation itself, uniquely identified by its external reference, date and service poster, its amount in currency (monetary) or loyalty point kind (non-monetary)

Note:

  • for monetary bonus the provided currency must be the same than the posting account, for non monetary bonus the provided loyalty point unit must be allowed by the Bonus program
  • it is possible to post credit and debit bonus operation

If the Bonus operation is related to an existing initial operation, this latter can be provided.

Idempotency is managed by the API; that is, if the request with the same WL-Correlation-ID is sent multiple times, it will be executed only once. The response will be retrieved directly from our system.

As a result the Bonus operation is posted to the account. Monetary bonus has an immediate impact on the account balance.

API links

Reverse a Bonus Operation for an Account

The API is used to fully reverse a Bonus operation previously posted on an account.

As an input it must be provided

  • the account, identified either by its account reference generated by WL or its issuer external account reference, on which the bonus operation was previously posted
  • the Bonus operation to be reversed
  • the information related to the reversal operation (reference, date, service poster)

Idempotency is managed by the API; that is, if the request with the same WL-Correlation-ID is sent multiple times, it will be executed only once. The response will be retrieved directly from our system.

API links

Post an Interest Operation for an Account

The API is used to post manually an interest operation to an account.

As an input it must be provided

  • the account, identified either by its account reference generated by WL or its issuer external account reference, on which the interest operation has to be posted
  • the interest operation itself, uniquely identified by its external reference, date and service poster, its amount in currency (monetary)

Note:

  • the provided currency must be the same than the posting account
  • it is possible to post credit and debit interest operation

Idempotency is managed by the API; that is, if the request with the same WL-Correlation-ID is sent multiple times, it will be executed only once. The response will be retrieved directly from our system.

As a result, the interest operation is posted to the account and has an impact on the account balance, immediately or not depending on the provided value date.

API links

Reverse an Interest Operation for an Account

The API is used to fully reverse an interest operation previously posted on an account.

As an input it must be provided

  • the account, identified either by its account reference generated by WL or its issuer external account reference, on which the interest operation was previously posted
  • the interest operation to be reversed
  • the information related to the reversal operation (reference, date, service poster)

Idempotency is managed by the API; that is, if the request with the same WL-Correlation-ID is sent multiple times, it will be executed only once. The response will be retrieved directly from our system.

API links

Retrieve operations by criteria (Global)

The API provides possibility to retrieve a list of operations for one or several accounts and for one or several contracts, based on certain criteria. The criteria used are the following:

  • 1st Group:
    • Issuer Company External Reference
    • Posting Account Identifier
    • Virtual Service Card External Reference
    • Virtual Service Card Number
  • 2nd Group:
    • Transaction date range
    • Posting date range
  • 3rd Group:
    • Reference amount range
    • Approval Code
    • Card Acceptor Name. this criteria accepts wildcards ('%' allows to achieve a search with only a partial input, 'Plat%', '%hill', 'Al%gang')
    • Operation Kinds

The rules of using this API and criteria for searching, are the following:

  • It will be mandatory to provide at least one of criteria from 1st Group. It is possible to provide two or three criteria at the same time. Virtual Service Card Number and Virtual Service Card External Reference can not be provided at the same time
  • It will be mandatory to provide one criterion from 2nd Group. The two criteria can not be provided at the same time
  • All Criteria in 3rd Group are optional
  • Regarding Criteria that will include ranges, both minimum and maximum values should be provided

API links

Retrieve an operation by external references triplet

This API allows retrieving for an account a particular operation from its external references.

The main input fields are:

  • The issuer ID
  • The account reference or the issuer external account reference
  • The external references of the operation for which the detail is requested: The triplet (externalOperationDate, externalOperationReference, externalOperationServicePoster) uniquely identifying the operation in our system must be provided.

The API response contains operation information.

API links

Enable "on this page" menu on doc section
On

General Account Management

General Account Management

Each Account is identified by a unique account Reference generated internally, and optionally by an external reference ”issuerAccountExternalReference”  provided by the issuer - which must be unique per issuer.

A set of APIS are available in order to:

  • Retrieve Account general information
  • Retrieve Account financial information
  • Update account parameters
  • Retrieve account specific information (related contract information, contract owner,..)
  • Schedule new account parameters update in the future
  • Retrieve list of future changes for an Account
  • Cancel future changes for an account by future change reference
  • Retrieve future changes for an account by future change reference
  • Retrieve the history of account updates
  • Create a mandate
  • Cancel a mandate
  • Retrieve list of turnovers for an Account
  • Retrieve corporate contract for an account

Retrieve Account

The "Retrieve account" API allows the account details to be retrieved.

The main input fields are:

  • The issuer ID
  • The account for which the detail is requested: It can be provided by using the account reference or the issuer external account reference

It is also possible to request some additional data by using the embedded fields.

In return, the interface provides generic account information (mainly master data). For credit cards, payment mode, the due amount calculation is provided back.

API links

Below is an example where the request retrieves the account detail for:

  • Account reference : 12343571015282598154
  • Embedded field: cardContractIdentifiers

GET /api/v2/issuers/1234/accounts/12343571015282598154/contract?embed=cardContractIdentifiers

Response data

{
   "data":" "{
      "        ""issuerId":" ""1234",
      "        ""contractIdentifier":" "{
         "            ""contractReference":" ""REF_MCI_BSW_CNT_216566294",
         "            ""issuerContractExternalReference":" ""LEGACY_REF_MCI_BSW_CNT_216566294""        "
      },
      "        ""issuerBranchCode":" ""NO_BRANCH",
      "        ""cardReleaseOrder":" ""AUTOMATIC",
      "        ""signatureDate":" ""2022-06-14T12:54:58.000+00:00",
      "        ""status":" ""SIGNED",
      "        ""statusDate":" ""2022-06-14T12:54:58.000+00:00",
      "        ""cardContractIdentifiers":" "[
         "            "{
            "                ""cardContractReference":" ""12342000000000242108",
            "                ""issuerCardContractExternalReference":" ""T_1234_CARD_VISA_DEBIT_CLASSIC_SHARE""            "
         }"        "
      ],
      "        ""contractOwnerIdentifier":" "{
         "            ""customerReference":" ""CUS10000243080""        "
      },
      "        ""productIdentifier":" "{
         "            ""issuerProductExternalReference":" ""PDT_1234_VISA_DEBIT_CLASSIC_SHARE",
         "            ""productReference":" ""PDT_1234_VISA_DEBIT_CLASSIC_SHARE""        "
      },
      "        ""rootAccountIdentifier":" "{
         "            ""accountReference":" ""12344635788536057209""        "
      }"    "
   }
}

Update Account Parameters

The "update account parameters" API allows the list of pre-defined parameters (attributes) of an account to be updated.

The main input fields requested by the API are:

  • The issuer ID
  • The account for which updates are required: It can be provided by using the account reference or the issuer external account reference
  • Parameters to be updated

The account information can be initially retrieved by using the retrieve Account API.

The updated parameters should be consistent with the initial product configuration defined in the system (e.g a change of closure calendar is accepted only if the provided calendar reference is allowed in the product definition).

This API is used for example to change the IBAN, closure date.

API links

PATCH /api/v2/issuers/1234/accounts/12343571015282598154

Request data

{
   "bic":" ""BNKDEBBB"
}

Response data

{
   " ""responseMetadata":" "{
      "        ""correlationId":" ""24ecfdcd-a6dc-42c0-8742-e3bfef392d29",
      "        ""statusMessage":" ""Executed successfully",
      "        ""statusCode": 200,
      "        ""responseDateTime":" ""2022-12-05T11:44:08.917+0100",
      "        ""timeTakenMs": 278 
    
   },
   "    ""data":" "{
      "        ""accountIdentifier":" "{
         "            ""accountReference":" ""12343571015282598154""        "
      }"    "
   }
}

Retrieve Account Owner For An Account

The API allows information on the account owner to be retrieved.

The main input fields are:

  • The issuer ID
  • The account for which information is requested.

It is also possible to request additional data like addresses by using the embedded fields.

API links

Retrieve Account Guarantor For An Account

The API allows information on the account guarantor to be retrieved.

The main input fields are:

  • The issuer ID
  • The account for which information is requested.

It is also possible to request additional data like addresses by using the embedded fields.

API links

Retrieve Financial Information For An Account

The API allows financial information of an account to be retrieved (not relevant for a debit card).

The main input fields requested by the API are:

  • The issuer ID
  • The account for which information is requested.

In response, different information is returned, such as account balance, sum of all operations (scheme operations, fees, ect) posted to the account (accepted amount), current open to buy amount (credit and prepaid accounts only).

API links

Below is an example where the request retrieves the financial information for:

  • Account reference : 12343360952787614799
  • Issuer: 1234

GET /api/v2/issuers/1234/accounts/12343360952787614799/balance

Response data

{
           " ""data":" "{
              "        ""acceptedAmount":" "{
                 "            ""value": 25000,
                 "            ""exponent": 2,
                 "            ""isoCode":" ""EUR""        "
              },
              "        ""accountBalance":" "{
                 "            ""value": 0,
                 "            ""exponent": 2,
                 "            ""isoCode":" ""EUR""        "
              },
              "        ""activeCreditLimitAmount":" "{
                 "            ""value": 1000000,
                 "            ""exponent": 2,
                 "            ""isoCode":" ""EUR""        "
              },
              "        ""authorizedAmount":" "{
                 "            ""value": 0,
                 "            ""exponent": 2,
                 "            ""isoCode":" ""EUR""        "
              },
              "        ""currentCycleStartDate":" ""2022-12-19T14:10:44.000+00:00",
              "        ""externalReservedAmount":" "{
                 "            ""value": 0,
                 "            ""exponent": 2,
                 "            ""isoCode":" ""EUR""        "
              },
              "        ""openToBuy":" "{
                 "            ""value": 975000,
                 "            ""exponent": 2,
                 "            ""isoCode":" ""EUR""        "
              },
              "        ""prevailingOpenToBuy":" "{
                 "            ""value": 975000,
                 "            ""exponent": 2,
                 "            ""isoCode":" ""EUR""        "
              }"    "
           }
        }

Retrieve Contract For An Account

The API enables the contract data for a given account to be retrieved.

API links

Below is an example where the request retrieves the contract detail for:

  • Account reference : 12343360952787614799
  • Issuer: 1234

GET /api/v2/issuers/1234/accounts/12343360952787614799/contract?embed=accountIdentifiers

Response data

{
   "data":" "{
      "        ""issuerId":" ""1234",
      "        ""contractIdentifier":" "{
         "            ""contractReference":" ""1fe5988a-4aec-418a-9133-acc45e3a2960",
         "            ""issuerContractExternalReference":" ""CONTRACT-202212190053""        "
      },
      "        ""issuerBranchCode":" ""NO_BRANCH",
      "        ""cardReleaseOrder":" ""AUTOMATIC",
      "        ""numberOfFreeCardsMembershipFee": 0,
      "        ""numberOfFreeCardsAccountSetupFee": 0,
      "        ""numberOfFreeCardsPrimaryCardImpacted":" false",
      "        ""signatureDate":" ""2022-12-19T14:10:43.000+00:00",
      "        ""status":" ""SIGNED",
      "        ""statusDate":" ""2022-12-19T14:10:43.000+00:00",
      "        ""accountIdentifiers":" "[
         "            "{
            "                ""accountReference":" ""12343360952787614799",
            "                ""issuerAccountExternalReference":" ""ROOT_ACCOUNT-202212190053""            "
         },
         "            "{
            "                ""accountReference":" ""12346360178674900361",
            "                ""issuerAccountExternalReference":" ""CHILD_ACCOUNT-202212190053""            "
         }"        "
      ],
      "        ""contractOwnerIdentifier":" "{
         "            ""customerReference":" ""CUS10000355325",
         "            ""issuerCustomerExternalReference":" ""PERSON-202212190053""        "
      },
      "        ""productIdentifier":" "{
         "            ""issuerProductExternalReference":" ""PDT_1234_BSW_Mastercard",
         "            ""productReference":" ""PDT_1234_BSW_Mastercard""        "
      },
      "        ""rootAccountIdentifier":" "{
         "            ""accountReference":" ""12343360952787614799",
         "            ""issuerAccountExternalReference":" ""ROOT_ACCOUNT-202212190053""        "
      },
      "        ""membershipFeeAnniversaryDate":" ""2023-12-18T23:00:00.000+00:00""    "
   }
}

Schedule New Account Parameters Update In The Future

The API is used to enter the account updates that should be applied on a schedule date.

The main input fields requested by the API are:

  • The issuer ID
  • The account involved by the change: It can be provided by using the account reference or the issuer external account reference
  • The plan date
  • The updates

API links

Below is an example with a change of IBAN scheduled on March, 1.

  • Account reference : 12343360952787614799
  • Issuer: 1234

POST api/v2/issuers/1234/accounts/12343360952787614799/account-future-updates

Request data

{
           "futureChangeDate":" ""2023-03-01T00:00:00.000Z",
           "    ""iban":" ""DE27999999350209299700"
        }

Response data

{
           "    ""responseMetadata":" "{
              "        ""correlationId":" ""3df539d3-2f17-455d-89a6-2a1d0446106a",
              "        ""statusMessage":" ""Executed successfully",
              "        ""statusCode": 200,
              "        ""responseDateTime":" ""2023-02-02T16:47:20.676+0100",
              "        ""timeTakenMs": 39 
            
           },
           "    ""data":" "{
              "        ""creationDate":" ""2023-02-02T15:47:20.656+00:00",
              "        ""futureChangeDate":" ""2023-03-01T00:00:00.000+00:00",
              "        ""accountIdentifier":" "{
                 "            ""accountReference":" ""12343360952787614799",
                 "            ""issuerAccountExternalReference":" ""ROOT_ACCOUNT-202212190053""        "
              }"    "
           }
        }

List Future Changes For An Account

The API allows a list of all account updates planned in the future to be retrieved.

The main input fields requested by the API are:

  • The issuer ID
  • The account for which information is requested: It can be provided by using the account reference or the issuer external account reference

It is also possible to request the account updates planned in the past and already processed.

API links

get account future updates

Below an example of request for:

  • Account: 12343360952787614799
  • Issuer: 1234

GET /api/v2/issuers/1234/accounts/12343360952787614799/account-future-updates?all=false

Response data

{
           "    ""data":" "[
              "        "{
                 "            ""issuerdId":" ""1234",
                 "            ""accountIdentifier":" "{
                    "                ""accountReference":" ""12343360952787614799",
                    "                ""issuerAccountExternalReference":" ""ROOT_ACCOUNT-202212190053""            "
                 },
                 "            ""futureChangeDate":" ""2023-03-01T00:00:00.000+00:00",
                 "            ""creationDate":" ""2023-02-02T15:47:20.000+00:00",
                 "            ""iban":" ""DE27999999350209299700""        "
              },
              "        "{
                 "            ""issuerdId":" ""1234",
                 "            ""accountIdentifier":" "{
                    "                ""accountReference":" ""12343360952787614799",
                    "                ""issuerAccountExternalReference":" ""ROOT_ACCOUNT-202212190053""            "
                 },
                 "            ""futureChangeDate":" ""2023-12-31T00:00:00.000+00:00",
                 "            ""creationDate":" ""2023-02-02T15:44:23.000+00:00",
                 "            ""iban":" ""DE27999999350209299700""        "
              }"    "
           ]
        }

Retrieve Future Changes For An Account By Future Change Reference

The API allows to get the account updates that have to be applied at a schedule date.

The main input fields requested by the API are:

  • The issuer ID
  • The account involved by the change: It can be provided by using the account reference or the issuer external account reference
  • The future change reference (unique per account)

API links

Retrieve The History Of Account Updates

The API enables the account update history to be retrieved.

The main input fields requested by the API are:

  • The issuer ID
  • The account concerned: It can be provided by using the account reference or the issuer external account reference

API links

Below is an example where the request retrieves the contract detail for:

  • Account reference : 12349870392328979979
  • Issuer: 1234

The iban has been modified.

GET /api/v2/issuers/1234/accounts/12349870392328979979/account-history?periodStartDateTime=2022-04-04T00%3A00%3A00Z

Response data

{
   "data":[
      {
         "issuerId":"1234",
         "accountIdentifier":{
            "accountReference":"12349870392328979979"
         },
         "effectiveDate":"2023-01-16T12:52:30.883+00:00",
         "accountHierarchySpecificFields":{
            "fieldName2":"value2",
            "fieldName1":""
         },
         "bic":"DEUTDEFFP71",
         "closureCalendarReference":"C_1234_CLOSURE_PL_24",
         "iban":"DE27100777770209299700",
         "overlimitContribution":"0.0",
         "paymentMode":"AUTOPAYMENT",
         "secondIban":"DE07370400442209465934",
         "selectedModels":[
            {
               "type":"eventFeeModel",
               "reference":"M_1234_EVENTFEE_STATEMENT_ONLY"
            },
            {
               "type":"restrictionModel",
               "reference":"M_1234_RESTR_ROOT_STANDARD"
            },
            {
               "type":"statementModel",
               "reference":"M_1234_STATMT_DEFAULT"
            },
            {
               "type":"debitInterestModel",
               "reference":"M_1234_INTEREST_0890"
            },
            {
               "type":"reimbursementModel",
               "reference":"M_1234_REIMB_TERMINATION_ONLY"
            }
         ],
         "spareChangeSaving":false,
         "accountGuarantorIdentifier":{
            "customerReference":"CUS10000205049"
         }
      },
      {
         "issuerId":"1234",
         "accountIdentifier":{
            "accountReference":"12349870392328979979"
         },
         "effectiveDate":"2022-04-04T16:18:55.144+00:00",
         "accountHierarchySpecificFields":{
            "fieldName2":"value2",
            "fieldName1":""
         },
         "bic":"DEUTDEFFP71",
         "closureCalendarReference":"C_1234_CLOSURE_PL_24",
         "iban":"DE52370400441209465934",
         "overlimitContribution":"0.0",
         "paymentMode":"AUTOPAYMENT",
         "secondIban":"DE07370400442209465934",
         "selectedModels":[
            {
               "type":"eventFeeModel",
               "reference":"M_1234_EVENTFEE_STATEMENT_ONLY"
            },
            {
               "type":"restrictionModel",
               "reference":"M_1234_RESTR_ROOT_STANDARD"
            },
            {
               "type":"statementModel",
               "reference":"M_1234_STATMT_DEFAULT"
            },
            {
               "type":"debitInterestModel",
               "reference":"M_1234_INTEREST_0890"
            },
            {
               "type":"reimbursementModel",
               "reference":"M_1234_REIMB_TERMINATION_ONLY"
            }
         ],
         "spareChangeSaving":false,
         "accountGuarantorIdentifier":{
            "customerReference":"CUS10000205049"
         }
      }
   ]
}

Cancel Future Changes For An Account By Future Change Reference

The API is used to cancel the account updates that should be applied on a schedule date (not yet reached).

The main input fields requested by the API are:

  • The issuer ID
  • The account involved by the change: It can be provided by using the account reference or the issuer external account reference
  • The future change reference (unique per account)
  • The reason of the future update cancellation

API links

Update Future Changes For An Account By Future Change Reference

The API is used to modify the account updates that should be applied on a schedule date (not yet reached).

The main input fields requested by the API are:

  • The issuer ID
  • The account involved by the change: It can be provided by using the account reference or the issuer external account reference
  • The future change reference (unique per account)
  • The updates
  • The reason of the future update modification

API links

Retrieve List Of Turnovers For An Account

This API returns a list of turnovers with the possibility to return only one type of turnover by providing the turnoverType as query parameter.

For each type of turnover, current turnover and historical data are retuned.

The possible turnovers are :

  • the turnover related to membership fee management (turnoverType=MEMBERSHIP_FEE)

    The turnover :

    • is optional (depends on product configuration)
    • can be used for membership fee reimbursement (if any)
    • is calculated for a period based on the membership fee anniversary date
  • the default turnover (turnoverType=DEFAULT)system.
    • is optional (depends on product configuration)
    • can be communicated to cardholder in statement
    • is used for automatic account setup fee reimbursement, if any
    • is calculated for a period based on Account anniversary date or the contract anniversary date (depends on product configuration)

API links

Create Mandate

The API allows to create a SEPA mandate for the given account by using issuer account external reference or the account reference (generated by WL).

  • For SEPA mandate successful creation in mandate management system, the Iban, Iban owner name and mandate signature date are to be provided. As a result, mandate is created in "Active" status and is ready to be used.
  • It is also possible to attach an existing SEPA mandate (explicitly created in mandate management system in advance) to a given account. To succeed, unique mandate reference (UMR) is to be provided as an input. As a result, mandate is attached if exists in mandate management system and is in "Active" status.

A mandate is an authorization that a debtor gives to a creditor in order to take payments from their customers bank accounts.

API links

Cancel Mandate

The API allows to cancel SEPA mandate for the given account by using issuer account external reference or the account reference (generated by WL).

The SEPA mandate can be cancelled immediately or in the future at a date provided by the issuer.

  • For immediate cancellation, mandate is “Revoked” immediately in mandate management system.
  • For scheduled cancellation, mandate is not “Revoked” until the cancellation date is reached in mandate management system.

API links

Retrieve corporate contract for an account

The API allows the corporate contract detail of an account to be retrieved.

The main input fields requested by the API are:

  • The issuer ID
  • The account for which the corporate contract information is requested: It can be provided by using the account reference or the issuer account external reference.

It is also possible to request some additional data, such as list of corporate contract entities, list of all customers, list of all companies, list of corporate employee accounts, root account linked to this corporate contract, by using the embedded fields.

In return, the interface provides the corporate contract details.

API links

Enable "on this page" menu on doc section
On

Contract Replacement With Product Change

Contract Replacement With Product Change(from product A to product B)

Change The Existing Product By Another One

The API can be used to replace a consumer contract (so called 'product change'), created from a certain product, by another consumer contract, created from a different product (e.g. in case of card product upgrade, downgrade).

This replacement or change:

  • must be allowed by the configuration (e.g. transition from product A to product B is configured and allowed)
  • is performed either immediately or in the future (next anticipated card renewal date) depending on the configuration

As a result:

  • Card renewal and replacement are disabled for all cards within the old contract
  • In case of product change in the future, the change is scheduled at the first anticipated card renewal date within the contract, and the product change status is PENDING

When this contract replacement or product change is performed (immediately or at the scheduled date):

  • Product change status is set to PROCESSED
  • The new contract is created from the new product (target product)
  • All cards of the old contract are transferred to the new one depending on business rules (e.g. deactivated/cancelled cards are not transferred)
  • Data such as IBAN are transferred to the new contract (data to be transferred depend on issuer requirements)
  • The closing date of the old contract is set according to the delay configured for the issuer
  • Account set-up fee and membership are reimbursed on old contract if requested

API links

Force A Pending Product Change

When a product change is scheduled for a consumer contract A, card replacement is blocked for each card of this contract A.

In this case, instead of requesting a card replacement this API allows to anticipate / force the scheduled product change on a consumer contract, identified by its Issuer Contract external reference or its Contract reference.

Also, the card to be replaced, previously permanently blocked (e.g. for lost or stolen reason) after the product change request, can be transferred to the new contract, not in cancelled status but in the status foreseen by the new product.

As a result:

  • Product change status is set to PROCESSED
  • The new contract is created from the new product
  • All cards of the old contract (e.g. contract A) are transferred to the new one depending on business rules (e.g. deactivated/cancelled, permanently blocked cards before the product change request are not transferred
  • Data such as IBAN are transferred to the new contract
  • The closing date of the old contract is set according to the delay configured for the issuer
  • Account set-up fee and membership are reimbursed on old contract if requested

API links

Cancel A Pending or Scheduled Product Change

The API can be used to cancel a product change for a given consumer contract, identified by either its issuer Contract external reference or its Contract reference:

  • PENDING or already PROCESSED product change
  • The cancellation is possible as long as the original contract is not yet closed (product change already processed).
  • It is possible to request the reimbursement of the fees (membership fee / account setup) already posted on the new contract.
  • It is possible to request cancellation only for the latest product change that was performed for the contracts that are linked each other through a product change (old contracts, new contract)

As a result,

  • In case of cancellation of a pending product change, the product change is not performed.
  • In case of cancellation of a product change already processed, the product change is reversed:
    • the original contract,and its cards will not be closed
    • the new contract and new cards are closed immediately

API links

Enable "on this page" menu on doc section
On

ob-data-ais-s4

Delete Consent

You can request to revoke account holder's consent. If the revocation is successful, the status of the consent will be changed to ‘Revoked’. If it’s not possible to revoke the consent, the status of the consent will be set to ‘RevokedAtTpp’, meaning the consent might still be active on the bank's side but can't no longer be used by you to retrieve the data.

In this testing scenario, it has been considered that consent has been revoked successfully. Take the following steps to complete this scenario.

Step - 1 : Get the list of connected banks

  • Call Reach API (GET /aspsp) to obtain a list of supported banks. 
  • Check API response of a record with ASPSP ID = "20101" and Name = "AIS Delete Consents".
  • Details and Options section provide a list of API endpoints  and mandatory fields that need to be used for successful account data request towards the mock bank using redirect mode of authorisation .
  • Remark: Details of reach information provided in the sandbox environment are limited and for informational purpose to give you an idea about how reach information looks like. 

Step - 2 : Initiate consent

  • Call the POST /consents API to obtain account holder's consent. 
  • In response of POST /consents, you will receive consent ID, a redirect link to authorise the consent and a link to call GET /consent/status API to get the status of the consent.
  • You will can choose various combination of permissions to access account data:      
    • "Accounts" - Only list of accounts can be retrieved. Balances and transaction details cannot be requested.
    • "Accounts", "Balances" - You can only request accounts and balances details for requested accounts.
    • "Accounts", "Transactions" - You can request list of accounts and transaction details for requested accounts.
    • "Accounts", "Balances", "Transactions" -You can request list of accounts, balances and transaction details for requested accounts. 
    • If there's no permissions provided in request, by default "Accounts", "Balances", "Transactions" permission will be used.
  • If "OwnerName" indicator set to "true" in consents request, you can receive actual owner name (if supported and provided by the mock bank) in the response of GET /accounts API.
  • "TransactionFromDateTime" and "TransactionToDateTime" can be provided in POST /consents request, so that you could access a list of transactions within a specific time period only.
  • Currently below fields are being ignored in POST /consents request in the sandbox environment but supported in live environment:
    • ValidUntilDate,
    • FrequencyPerDay,
    • RecurringIndicatior,
    • CombinedServiceIndicator,
    • PreferredScaMethod
  • If GET /consents/status endpoint has been called before user provides their approval, you will receive consent status = "Open" from the mock bank in response.

Step - 3 : Authorise or reject the consent

  • With the redirect link received in response of POST /consents, the account holder is redirected to the login page of mock bank. 
  • On this login page, the account holder can provide dummy (any) credential details as the log in page is for example purpose only.
  • Once the account holder provides their dummy credentials, they are redirected to a page with "Approve" & "Deny" buttons to authorise or reject the data access.
  • Once the account holder clicks on Approve or Deny button, the consent is created with an appropriate status and the account holder is redirected back to your software.
  • Remark : Mock bank pages were created for the testing purpose only. The actual implementation depends on bank's PSD2 implementation.

Step - 4 : Get consent status

  • Call the GET /consents/status API to get the latest consent status from the mock bank.
  • If consent is authorised by the account holder, you will receive consent status = "Authorised".
  • If consent is denied by the account holder, you will receive consent status = "Rejected" as a final consent status.

Step - 5 : Revoke consent

  • If consent status = “Authorised”, call the Delete /consents API endpoint to revoke the consent.

Step - 6 : Get consent status

  • Call the GET /consents/status API to get the latest consent status from the mock bank.
  • If consent is revoked successfully, you will receive consent status = "Revoked".

Sequence Diagram

Delete Consent
Enable "on this page" menu on doc section
On

ob-data-ais-s3

Download Transactions

If the banks supports paginated response but the number of transactions is considered too high or if the bank provides the response in CAMT format, it might be possible that the GET transactions response contains a download link only.

Using the link you can download the list of transactions in JSON format. If the bank provides the transactions in a non-JSON format, the transactions are converted to JSON by Worldline.

Processing flow for this scenario is similar to described in “Redirect flow with Date filter only” section with addition of GET /download/transactions API.

Account holder's (PSU) consent is needed to access their bank accounts details. In the Redirect Authorisation approach, the browser session of the account holder is redirected from your software / Worldline Bank Selection Interface to mock bank. In that case the mock bank provides all the pages required for authentication (usually username, password). After that the account holder is redirected to Worldline Open Banking Service and from there back to your software.

Take the following steps to complete this scenario.

Step - 1 : Get the list of connected banks

  • Call Reach API (GET /aspsp) to obtain a list of supported banks. 
  • Check API response of a record with ASPSP ID = "20102" and Name = "Account information redirect + Download transactions".
  • Details and Options section provide a list of API endpoints  and mandatory fields that need to be used for successful account data request towards the mock bank using redirect mode of authorisation .
  • Remark: Details of reach information provided in the sandbox environment are limited and for informational purpose to give you an idea about how reach information looks like. 

Step - 2 : Initiate consent

  • Call the POST /consents API to obtain account holder's consent. 
  • In response of POST /consents, you will receive consent ID, a redirect link to authorise the consent and a link to call GET /consent/status API to get the status of the consent.
  • You will can choose various combination of permissions to access account data:      
    • "Accounts" - Only list of accounts can be retrieved. Balances and transaction details cannot be requested.
    • "Accounts", "Balances" - You can only request accounts and balances details for requested accounts.
    • "Accounts", "Transactions" - You can request list of accounts and transaction details for requested accounts.
    • "Accounts", "Balances", "Transactions" -You can request list of accounts, balances and transaction details for requested accounts. 
    • If there's no permissions provided in request, by default "Accounts", "Balances", "Transactions" permission will be used.
  • If "OwnerName" indicator set to "true" in consents request, you can receive actual owner name (if supported and provided by the mock bank) in the response of GET /accounts API.
  • "TransactionFromDateTime" and "TransactionToDateTime" can be provided in POST /consents request, so that you could access a list of transactions within a specific time period only.
  • Currently below fields are being ignored in POST /consents request in the sandbox environment but supported in live environment:
    • ValidUntilDate,
    • FrequencyPerDay,
    • RecurringIndicatior,
    • CombinedServiceIndicator,
    • PreferredScaMethod
  • If GET /consents/status endpoint has been called before user provides their approval, you will receive consent status = "Open" from the mock bank in response.

Step - 3 : Authorise or reject the consent

  • With the redirect link received in response of POST /consents, the account holder is redirected to the login page of mock bank. 
  • On this login page, the account holder can provide dummy (any) credential details as the log in page is for example purpose only.
  • Once the account holder provides their dummy credentials, they are redirected to a page with "Approve" & "Deny" buttons to authorise or reject the data access.
  • Once the account holder clicks on Approve or Deny button, the consent is created with an appropriate status and the account holder is redirected back to your software.
  • Remark : Mock bank pages were created for the testing purpose only. The actual implementation depends on bank's PSD2 implementation.

Step - 4 : Get consent status

  • Call the GET /consents/status API to get the latest consent status from the mock bank.
  • If consent is authorised by the account holder, you will receive consent status = "Authorised".
  • If consent is denied by the account holder, you will receive consent status = "Rejected" as a final consent status.

Step - 5 : Get list of accounts

  • Once the consent is authorised by the customer (PSU), call the GET /accounts API to obtain list of accounts.

Step - 6 : Get transaction details

  • Call the GET /transactions API to retrieve transactions details of respective account. 
  • In response, you will receive GET /download/transactions API link.

Step - 7 : Download transactions

  • Call the GET /download/transactions API link  and  receive the list of transactions in JSON format.

Sequence Diagram

AIS Download Transactions
Enable "on this page" menu on doc section
On

ob-data-ais-s2

Redirect flow with DateTime filter

This scenario is similar to the first testing scenario with a slight difference, that the returned transactions are filtered using both date and time parameters ("dateFrom" & "dateTo" query parameters) as we want to bring to your attention that some banks provide requested transaction data based on date & time.

Take the following steps to complete this scenario.

Step - 1 : Get the list of connected banks

  • Call Reach API (GET /aspsp) to obtain a list of supported banks. 
  • Check API response of a record with ASPSP ID = "20116" and Name = "Account Information redirect + Transaction datetime filter".
  • Details and Options section provide a list of API endpoints  and mandatory fields that need to be used for successful account data request towards the mock bank using redirect mode of authorisation .
  • Remark: Details of reach information provided in the sandbox environment are limited and for informational purpose to give you an idea about how reach information looks like. 

Step - 2 : Initiate consent 

  • Call the POST /consents API to obtain account holder's consent. 
  • In response of POST /consents, you will receive consent ID, a redirect link to authorise the consent and a link to call GET /consent/status API to get the status of the consent.
  • You will can choose various combination of permissions to access account data:      
    • "Accounts" - Only list of accounts can be retrieved. Balances and transaction details cannot be requested.
    • "Accounts", "Balances" - You can only request accounts and balances details for requested accounts.
    • "Accounts", "Transactions" - You can request list of accounts and transaction details for requested accounts.
    • "Accounts", "Balances", "Transactions" -You can request list of accounts, balances and transaction details for requested accounts. 
    • If there's no permissions provided in request, by default "Accounts", "Balances", "Transactions" permission will be used.
  • If "OwnerName" indicator set to "true" in consents request, you can receive actual owner name (if supported and provided by the mock bank) in the response of GET /accounts API.
  • "TransactionFromDateTime" and "TransactionToDateTime" can be provided in POST /consents request, so that you could access a list of transactions within a specific time period only.
  • Currently below fields are being ignored in POST /consents request in the sandbox environment but supported in live environment:
    • ValidUntilDate,
    • FrequencyPerDay,
    • RecurringIndicatior,
    • CombinedServiceIndicator,
    • PreferredScaMethod
  • If GET /consents/status endpoint has been called before user provides their approval, you will receive consent status = "Open" from the mock bank in response.

Step - 3 : Authorise or reject the consent 

  • With the redirect link received in response of POST /consents, the account holder is redirected to the login page of mock bank. 
  • On this login page, the account holder can provide dummy (any) credential details as the log in page is for example purpose only.
  • Once the account holder provides their dummy credentials, they are redirected to a page with "Approve" & "Deny" buttons to authorise or reject the data access.
  • Once the account holder clicks on Approve or Deny button, the consent is created with an appropriate status and the account holder is redirected back to your software.
  • Remark : Mock bank pages were created for the testing purpose only. The actual implementation depends on bank's PSD2 implementation.

Step - 4 : Get consent status

  • Call the GET /consents/status API to get the latest consent status from the mock bank.
  • If consent is authorised by the account holder, you will receive consent status = "Authorised".
  • If consent is denied by the account holder, you will receive consent status = "Rejected" as a final consent status.

Step - 5 : Get list of accounts

  • Once the consent is authorised by the customer (PSU), call the GET /accounts API to obtain list of accounts.

Step - 6 : Get balances details

  • Once you obtain a list of accounts, call GET /balances API to get the balance details of respective account.

Step - 7 : Get transaction details

  • Call the GET /transactions API to retrieve transactions details of respective account. 
  • In sandbox environment you can try out the below functionalities of GET /transactions API:
    • Get transaction data for specific date range using "dateFrom" & "dateTo" query parameters. Transaction data is returned based on date with time as this might also happen in the live environment. 
  • If the mock bank responds with large number of transactions, you may receive a paginated transactions response.
  • In case of paginated response, you can retrieve appropriate transaction page using "first", "next", "previous", "last", "self" links provided in the response.

Sequence Diagram

AIS with Redirect authorisation - dateTime

 

Enable "on this page" menu on doc section
On

ob-data-ais-s1

Redirect flow with Date filter only

Account holder's (PSU) consent is needed to access their bank accounts details. In the Redirect Authorisation approach, the browser session of the account holder is redirected from your software / Worldline Bank Selection Interface to mock bank. In that case the mock bank provides all the pages required for authentication (usually username, password). After that the account holder is redirected to Worldline Open Banking Service and from there back to your software.

Take the following steps to complete this scenario.

Step - 1 : Get the list of connected banks

  • Call Reach API (GET /aspsp) to obtain a list of supported banks. 
  • Check API response of a record with ASPSP ID = "20101" and Name = "Account Information redirect + Transaction Date filter".
  • Details and Options section provide a list of API endpoints  and mandatory fields that need to be used for successful account data request towards the mock bank using redirect mode of authorisation .
  • Remark: Details of reach information provided in the sandbox environment are limited and for informational purpose to give you an idea about how reach information looks like. 

Step - 2 : Initiate consent

  • Call the POST /consents API to obtain account holder's consent. 
  • In response of POST /consents, you will receive consent ID, a redirect link to authorise the consent and a link to call GET /consent/status API to get the status of the consent.
  • You will can choose various combination of permissions to access account data:      
    • "Accounts" - Only list of accounts can be retrieved. Balances and transaction details cannot be requested.
    • "Accounts", "Balances" - You can only request accounts and balances details for requested accounts.
    • "Accounts", "Transactions" - You can request list of accounts and transaction details for requested accounts.
    • "Accounts", "Balances", "Transactions" -You can request list of accounts, balances and transaction details for requested accounts. 
    • If there's no permissions provided in request, by default "Accounts", "Balances", "Transactions" permission will be used.
  • If "OwnerName" indicator set to "true" in consents request, you can receive actual owner name (if supported and provided by the mock bank) in the response of GET /accounts API.
  • "TransactionFromDateTime" and "TransactionToDateTime" can be provided in POST /consents request, so that you could access a list of transactions within a specific time period only.
  • Currently below fields are being ignored in POST /consents request in the sandbox environment but supported in live environment:
    • ValidUntilDate,
    • FrequencyPerDay,
    • RecurringIndicatior,
    • CombinedServiceIndicator,
    • PreferredScaMethod
  • If GET /consents/status endpoint has been called before user provides their approval, you will receive consent status = "Open" from the mock bank in response.

Step - 3 : Authorise or reject the consent

  • With the redirect link received in response of POST /consents, the account holder is redirected to the login page of mock bank. 
  • On this login page, the account holder can provide dummy (any) credential details as the log in page is for example purpose only.
  • Once the account holder provides their dummy credentials, they are redirected to a page with "Approve" & "Deny" buttons to authorise or reject the data access.
  • Once the account holder clicks on Approve or Deny button, the consent is created with an appropriate status and the account holder is redirected back to your software.
  • Remark : Mock bank pages were created for the testing purpose only. The actual implementation depends on bank's PSD2 implementation.

Step - 4 : Get consent status

  • Call the GET /consents/status API to get the latest consent status from the mock bank.
  • If consent is authorised by the account holder, you will receive consent status = "Authorised".
  • If consent is denied by the account holder, you will receive consent status = "Rejected" as a final consent status.

Step - 5 : Get list of accounts

  • Once the consent is authorised by the customer (PSU), call the GET /accounts API to obtain list of accounts.

Step - 6 : Get balances details

  • Once you obtain a list of accounts, call GET /balances API to get the balance details of respective account.

Step - 7 : Get transaction details

  • Call the GET /transactions API to retrieve transactions details of respective account. 
  • In sandbox environment you can try out the below functionalities of GET /transactions API:
    • Get transaction data for specific date range using "dateFrom" & "dateTo" query parameters. Transaction data is returned based on date without time as this might also happen in the live environment. 
  • If the mock bank responds with large number of transactions, you may receive a paginated transactions response.
  • In case of paginated response, you can retrieve appropriate transaction page using "first", "next", "previous", "last", "self" links provided in the response.

Sequence Diagram

AIS with Redirect Authorisation
Enable "on this page" menu on doc section
On