ob-p-a2a-flow

Payment Flows

There are 3 main types of payment flows:

1. Redirect

In the Redirect Approach the browser session of the payer is redirected from your software to payer's bank. In that case the bank provides all the pages required for Strong Customer Authentication (SCA). Once the authorisation is complete, the payer is being redirected back to your software.

2. Decoupled

In the Decoupled Approach no redirection takes place. Instead the payer's bank notifies the payer, for example using mobile banking app. The authentication is executed by the app. Since this approach is asynchronous, you need to check payment status to know when the authentication process has been finished. 

3. Embedded

In the Embedded Approach you have to provide all the screens required for the authentication process and to communicate all necessary steps over the API of the Open Banking Service to the ASPSP. 

 

Authorization Steps

Depending on the payment flow you will need to implement a different sequence of API call. Please check below sequence diagrams to understand each flow.

You can indicate your preferred SCA method by using PreferredScaMethod (Embedded, Decoupled, Redirect) parameter, but there is no guarantee that the bank will actually use it to authenticate the payer. You can check what payment method is supported by each bank from Reach API.

For faster integration and better user experience we offer the Bank Selection Interface, it will then always become a redirect flow from you to this interface. This interface can be customised with your branding allowing to choose the payer's bank and handling the complexity of different PSD2 authorization flows, so that you will be able to focus on your product and leave the boring stuff to us. 

The selected flow with which authentication will go through, is being identified by the name of a hyperlink, provided in the response.

 

Redirect Flow 

Below is a sequence diagram showing a typical redirection payment flow. Depending on the individual implementation of the bank, the actual flow may differ slightly. The green vertical bars indicates who is responsible for the interaction with the payer (PSU).

Redirect back to the Initiating Party

Once the PSU has interacted with the ASPSP, the session will be redirected back to the Initiating Party. Here, the Open Banking Service appends the Initiating Party Return URL with the Service Name and the payment ID so that the session can be recognised. This enables the Initiating Party to display the correct screen to the PSU.
An example of a return URL is as follows: https://www.example.org/?scope=UElTOjE1NjQzMTYw
The Initiating Party would need to base64 decode this string : UElTOjE1NjQzMTYw
The example above results in: {ServiceName}:{paymentId}, i.e. PIS:15643160

Sequence diagram PIS redirect

Decoupled Flow 

Below is a sequence diagram showing a typical decoupled payment flow. Depending on the individual implementation of the bank, the actual flow may differ slightly. The green vertical bars indicates who is responsible for the interaction with the payer (PSU).

sequence diagrams PIS decoupled

Embedded Flow

Below is a sequence diagram showing a typical embedded payment flow. Depending on the individual implementation of the bank, the actual flow may differ slightly. The green vertical bars indicates who is responsible for the interaction with the payer (PSU).

Sequence diagram PIS embedded

 

Flow steering by links

The table below includes every possible step with the corresponding approach. In the response of each request the named link informs about the next request to be sent according to the actual state in the flow.

SCA approach Hyperlink name Hyperlink URL API Description

Redirect

RedirectUrl

Redirect link

Can be white labeled in case Worldline Bank Selection Interface is used

URL of PSU’s authentication or authorisation on APSPS side, or towards the Initiation Service

Redirect/Embedded/Decoupled

ConfirmationRequired

POST /confirmation

Confirmation of the transaction after authorisation is being done or being exempted.

Redirect/Embedded

PostAuthorisationForExplicit

POST /authorisation

Mostly is being used when multi-sca should be done with Redirect Approach. Nobody required in the request.

Decoupled

PostIdentificationForDecoupled

POST /identification

Requires PSU’s identification at ASPSP for Decoupled Approach.

Embedded

PreAuthenticationForEmbedded

POST /pre-auth

Pre-Authentication is required and will be made with Embedded Approach.

Embedded

PostAuthorisationForEmbedded

POST /authorisation

Start of Authentication with PSU’s credentials at ASPSP.

Embedded

SelectAuthenticationMethod

PUT /authorisation

The update of the authorisation resource where selected SCA method should be provided

Embedded

AuthorizeTransaction

PUT /authorisation

The update of the authorisation resource where challenge response (OTP) should be provided.

Embedded

PutAuthorisationForEmbedded

PUT /authorisation

The update of the authorisation resource with PSU’s credentials, when some other authorisation steps have been done before.

Enable "on this page" menu on doc section
On

Corporate Cards

Corporate Cards

Our solution enables to represent and manage any company with its original hierarchy structure, where the company representation key elements are the following:

  • Corporate contract
    • An agreement between the issuer and the company
    • Corporate contract owner is the company itself, with its proper address management (statement delivery address, etc.)
  • Corporate organization
    • Corporate organization represents the company
    • Can fully correspond to the company original organization
    • Can be represented by a simple 2-level organization or a complex one (where multilevel organization structure applies)
  • Corporate account organization/corporate account
    • Account organization is a mirror of corporate organization, where each corporate entity has its own account
    • For simple 2-level account hierarchy these are the company account and employee card accounts
    • For multilevel complex account hierarchy structure these are the intermediate accounts in between the company account and employee card accounts, where it is possible to have an employee entity attached to any level within the corporate organization
  • Corporate card
    • Can be a physical or a virtual one
    • Corporate card owner is the employee itself or the organization (e.g., lodged cards)
      • In general, the same person can represent an employee within corporate cards structure or an individual within consumer cards’ structure, where different addresses can be managed for the same person within corporate or consumer cards (E.g., for the same cardholder (person) a corporate and consumer card statement delivery addresses can be different, card delivery addresses can be different, etc.)

Our solution offers multiple APIs related to corporate contracts and their features such as

  • Company management (see Company’s management)
    • including company itself and all its possible entities such as countries, divisions, departments, cost centers
    • creation and update of company data such as company name, external company reference
    • possibility to manage company’s contact(s)
  • Employee management (see Customer)
    • Employee, as person, can have both consumer and corporate cards
    • Employee can have 1 or several corporate cards
    • Creation and update of employee data
  • Corporate contract management
    • Creation with company organization, employees and cards
      • Company organization can be built later at any moment
      • Employees and cards can be added later at any moment/li>
      • Possibility to e.g.
        • indicate the membership and account setup fees payer (the company, employees)
        • define default, can be changed for each corporate card, such as
          • a default logo reference (transmitted to the embosser)
          • if the company should receive a duplicate of the statement for cards paid by employees
          • the dispatch code (in order to deliver all cards for the given corporate contract to the same corporate address)/li>
          • if cards open-to-buy should be reset to their maximum credit limit, by default, at cyclic closure date (for credit cards only – e.g. credit limit of 3.000€, cardholder has spent 2.000€ then current open-to-buy of 1.000€ is reset to 3.000€ at cycle closure date even if repayment not already received).
    • Update of corporate contract data such as logo reference, membership and account setup fees payer
    • Company organization management
      • Modification of the company organization (e.g. new country and its organization)
      • Update of a certain company entity (change of delivery channels, advertisement options)
    • Close a corporate contract immediately or in the future
      • As soon as the contract is closed all cards are closed (next authorizations are declined) and related accounts start the standard account closing process
  • Add employee and its card to a certain entity of the company
    • A new or existing employee can be added with its card and related card account to an entity of the company organization
    • e.g. add employee to a cost center 123456, to division AAAA (e.g. employee is the division manager)
    • possible to e.g.
      • indicate whether the card is repaid by the employee or the company
      • indicate the repayment mode (self-payer, direct debit)
      • provide a specific credit limit value/li>
  • Possibility to change how are repaid cards for a certain contract at any moment
    • from repaid by the employee to repaid by the company/li>
    • from repaid by the company to repaid by the employee)
Enable "on this page" menu on doc section
On

Corporate Contract Management

Corporate Contract Management

Create corporate contract

The Create Corporate Contract API allows the creation of a new corporate contract with the company organization (complete or partial structure).

Pre-conditions:

The correlation ID, if provided by the issuer, must be unique. In case of re-use of a correlation ID from an existing corporate contract, the system will return the data from the existing corporate contract (e.g., if the API call returns a "time-out" response, the same correlation ID can be provided to retrieve corporate contract data from Worldline system for further checks).

During the corporate contract creation

1) The issuer can provide a list of new customers/companies, otherwise the references to existing customers/companies in Worldline system can be used

2) The issuer has the possibility to create

  • the company organization, by adding 1 or several corporate entities such as countries, divisions, departments (this is also possible afterwards with dedicated API)
  • the employees with their cards and accounts (this is also possible afterwards with dedicated API)

As a result, the contract is created:

  • with its own reference calculated by our system
  • with the status set to "Signed"
  • with entity levels of the company organization (at least the company itself)
  • with the root entity account

The API response returns

  • the different identifiers related to the corporate contract, such as the contract itself, contract owner, account owner of an entity
  • if requested identifiers of employee accounts, card contracts, cards and cardholders if any (each identifier is composed of the Worldline internal reference and, optionally, the external reference if provided by the issuer in the request)

The references are used to: retrieve/update/close corporate contracts, retrieve the list of entities for a corporate contract, retrieve the corporate employee account, etc.

API links

Close corporate contract

The API allows to close a corporate contract identified by the Issuer Contract external reference or the Contract reference.

The corporate contract can be closed immediately or in the future at a date provided by the issuer.

As a result,

  • For immediate corporate contract closing: the corporate contract is closed, the cards within the corporate contract are deactivated, the accounts closing process is started for all accounts.
  • For scheduled corporate contract closing (closing in the future): as soon as the closing date is reached then the immediate corporate contract closing process is applied.

API links

Add an employee and its card(s) and account(s) to a corporate contract

This API allows an issuer to add to an existing corporate contract an employee with a new card and a new card account. Different types of card products (e.g. MCI/VISA debit, credit, prepaid) are supported.

The issuer shall provide the required data

  • employee information (new or existing one)
  • the product extension, with appropriated card and account products among those available for the corporate product used to create the contract
  • required data for card and account
  • the entity of the company organization to which the employee should be attached (e.g. employee to be attached to department A)

The issuer can replace default membership fee and/or account setup fee (contract fees) by specific ones.

The API response returns the extended corporate contract with information related to newly created employee account(s), card contract(s) and card(s) only.

API links

Add an entity of the company organization to a corporate contract

This API allows an issuer to add a new entity to the company organization such a new country, division or department to an existing corporate contract.

The issuer shall provide required data to create the new entity such as

  • the product extension to be used among those available for the corporate product used to create the contract
  • entity and account data
  • customer (person) or company information (new ones) or customer references (existing ones in Worldline system)

The API response returns the extended corporate contract with information related to the newly added entity to the company organization and its associated account(s)only.

API links

Update corporate contract

The API allows to update certain data of an existing corporate contract such as

  • pass-through data (specificFields)
  • logo reference sent to the embosser (optional, and can be overridden at card level)
  • dispatch code sent to the embosser (optional)
  • if the company should receive a duplicate for statement or not
  • if the Open-to-buy should be reset to the credit limit amount at cycle closure date (credit account only)
  • if both membership fee and account setup fee are paid by the card account (usually the employee) or the root account (usually the company)
  • the description of each level of the company organization

As a result the corporate contract is immediately updated with provided data in Worldline system.

API links

Update corporate contract entity

The API allows certain data of an existing entity of a corporate contract to be updated such as

  • the allowed advertisement channels (flags)
  • the allowed delivery channel for possible letters

As a result the corporate contract entity is immediately updated with provided data in our system.

API links

Update corporate employee account

The API allows to update certain data of an existing corporate employee account or Virtual Card Account, such as:

  • the external reference of the employee account
  • the allowed advertisement channels (flags)
  • the allowed delivery channel for possible letters
  • if both membership and account setup fees should be waived during contract lifecycle (can be changed at any moment)
  • if both membership fee and account setup fee are paid by the card account (usually the employee) or the root account (usually the company)

As a result the corporate employee account is immediately updated with provided data in our system.

API links

Retrieve corporate contract

This API allows a particular corporate contract from its reference or its issuer external reference to be retrieved.

The API response contains corporate contract information such as:

  • contract identifier with the contract reference and the issuer external contract reference if previously provided
  • list of levels in the company organization
  • embedded fields if requested such as list of corporate contract entities, list of all customers, list of all companies (limited to 100), list of corporate employee accounts linked to this corporate contract

API links

Below an example for :

  • Corporate contract: 0a315367-efb2-4d52-8ec0-f2fd5c8cbfe8
  • Issuer: 1234

GET/api /v2/issuers/1234/corporate-contracts/0a315367-efb2-4d52-8ec0-f2fd5c8cbfe8

Response data

  {"data": { 
                    "issuerId": "1234",
                    "contractIdentifier": {
                        "contractReference": "0a315367-efb2-4d52-8ec0-f2fd5c8cbfe8",
                        "issuerContractExternalReference": "A12345"
                    },
                    "signatureDate": "2023-04-07T09:31:49.000+00:00",
                    "specificFields": {
                        "test1": "val1",
                        "test2": "val3"
                    },
                    "status": "SIGNED",
                    "statusDate": "2023-04-07T09:31:49.000+00:00",
                    "rootAccountIdentifier": {
                        "accountReference": "95501685952215201085",
                        "issuerAccountExternalReference": "aeb9d162-d80a-4e17-bc9d-227ad9fde666"
                    },
                    "productIdentifier": {
                        "issuerProductExternalReference": "PDT_1234_MC_CorporateWorld_FH",
                        "productReference": "PDT_1234_MC_CorporateWorld_FH"
                    },
                    "statementDuplicatedForCompany": false,
                    "hierarchyDefaultResetCreditLimit": false,
                    "postingAccountForMembershipFee": "CARD_ACCOUNT",
                    "postingAccountForAccountSetupFee": "CARD_ACCOUNT",
                    "corporateContractLevels": [
                        {
                            "level": "1",
                            "levelDescription": "COMPANY"
                        }
                    ]
                } 
            }

Retrieve corporate employee account

This API allows a particular corporate employee account or Virtual Card Account to be retrieved from its reference or its issuer external reference.

The API response contains corporate employee account information such as:

  • account identifier with the account reference and the issuer external account reference
  • external reference of the employee account
  • parent identifier with the account reference and the issuer external account reference
  • allowed advertisement channels (flags)
  • allowed delivery channel for possible letters
  • if both membership and account setup fees are waived during contract lifecycle
  • if both membership fee and account setup fee are paid by the account or the root
  • type of a corporate product (if the account is related to the company or an employee)
  • embedded fields if requested such as account information, card account(s), card contract(s) linked to this corporate employee account

API links

Change paying account

For a certain corporate contract it is possible to change the paying account type for all accounts from paid by the account itself (usually paid by the employees) to paid by the root account (usually paid by the company) or the inverse.

E.g. all card accounts are paid by employees themselves (each account is paid by itself) within a contract, then it is possible to request to switch to all accounts are paid by the company itself (e.g. root account represents the company and becomes the paying account).

API links

Cancel scheduled change of paying account

The API enables to cancel the scheduled change of paying account type, until the scheduled date has not reached yet.

API links

Refund fee on demand for corporate contract

The API is used to trigger an on demand pro rata refund of Account Setup (AS) fee or Membership fee (MS) for the unutilized period.

Pre Conditions:

  • In case refund for Account Setup fee is requested then card contract closure date should be less than card contract creation date + 1 year
  • In case refund for Membership fee is requested, then the Membership fee should already be posted
  • Account setup fee refund on demand can be received only once during contract lifecycle
  • Membership fee refund on demand can be received only once between Membership fee anniversary dates

The issuer can request the refund by AS or MS fee by providing:

  • The fee type: Either Account Setup fee or Membership Fee
  • Card Contract Reference

As a Result:

  • For Account Setup fee:
    • If account is in closed status (BEING_CLOSED), the pro rata refund will be calculated and posted with the following logic: Posted AS fee amount * (Number of days from contract cancellation till (card contract creation + 1 year) / number of days in the year),
    • In other cases, it will be calculated in the following logic:,Posted AS fee amount * (Number of days from the date when demand for refund is received till (card contract creation + 1 year) / number of days in the year)
  • For Membership Fee:
    • If account is in closed status (BEING_CLOSED), the pro rata refund will be calculated and posted with the following logic: MS fee posted on last MS fee anniversary date * (Number of days from contract cancellation till next MS Fee Anniversary date / number of days in the year)
    • In other cases, it will be calculated in the following logic: MS fee posted on last MS fee anniversary date * (Number of days from the date when demand for refund is received till next MS Fee Anniversary date / number of days in the year).

API links

Reallocate employee within the same/different corporate contract(s)

The API can be used to reallocate an employee (i.e., an employee card contract) within the same or different corporate contract(s).

This reallocation

  • must be allowed by the configuration (e.g. original employee product shall be in the list of allowed employee products for the new corporate contract)
  • is performed immediately

As a result, when employee reallocation is performed

  • the employee new account is created under the given parent account (can be within the same or different corporate contract)
  • the employee card contract is reallocated
  • the employee new account becomes the posting account for reallocated employee/card contract
  • data such as IBAN are transferred to the employee new account
  • the employee old account is closed according to standard business rules
  • account set-up and membership pending fees are transferred from the employee old account to the employee new account and paid, i.e., periodic fees on the employee new account are normally continued.

API links

Add Corporate VCA Service Cards and Accounts to a corporate contract

This endpoint can be used to create Virtual Card Account (VCA). This is a specific service offered by MCI, VISA and Wordline service (VCE). The VCA is not used to pay transactions, instead a token is requested from MCI, VISA, Worldline service (depends on the Issuer), to fund the transactions.

It is possible to request creation of several VCA Service Cards and Accounts at the same time.

Pre Conditions

  • Card Profile related to Virtual Card account should exist

The Issuer can request adding VCA Servive cards and accounts to the corporate contract, by providing:

  • employee information (new or existing one)
  • the product extension, with appropriated card and account products among those available for the corporate product used to create the contract
  • required data for card and account
  • the entity of the company organization to which the employee should be attached (e.g. employee to be attached to department A)

As a result

  • Dedicated account to the Virtual Card Account is created
  • Card Contract and card is created related to VCA Service

The API response returns the extended corporate contract with information related to newly created VCA Service account(s), card contract(s) and card(s).

API links

Retrieve Contract Owner For A Corporate Contract

This API allows the contract owner for a corporate contract identified by the Issuer Contract external reference or the Contract reference, to be retrieved.

The API response contains :

  • either customer information if the contract owner is a person
  • or company information if the contract owner is a company

API links

Subscribe To Add-On For Corporate Contract

The API allows a cardholder to subscribe to an additional service (e.g. new letter, travel insurance) for the corporate contract during all contract life cycle.

The list of allowed additional services are defined on the product (e.g. PORTAL_ACCESS, ALERT, NOTIFICATION).

The main input fields requested by the API are:

  • The issuer ID
  • The corporate contract for which the add-on subscription is requested: It can be provided by using the contract reference or the issuer external contract reference
  • The identifier of the entity for which the add-on subscription is requested: Either the card contract by providing the card contract reference or the issuer external card contract reference, OR the account by providing the account reference or the issuer external account reference
  • The corresponding reference of the additional service
  • The service type reference defined at product level

Depending on the service type, the issuer can add additional parameters to the add-on service.

As a result:

  • The new add-on subscription for the corporate contract is available and can be unsubscribed during all contract life cycle
  • A fee can be generated and posted to the cardholder account if required for the product.

API links

Unsubscribe To Add-On For Corporate Contract

The API allows a cardholder to unsubscribe from an additional service (e.g. new letter, travel insurance) for the corporate contract during all contract life cycle.

The main input fields requested by the API are:

  • The issuer ID
  • The corporate contract for which the add-on unsubscription is requested: It can be provided by using the contract reference or the issuer external contract reference
  • The identifier of the entity for which the add-on subscription is requested: Either the card contract by providing the card contract reference or the issuer external card contract reference, OR the account by providing the account reference or the issuer external account reference
  • The reference of the additional service
  • The service type reference

As a result, the existing add-on subscription for the corporate contract is no longer available.

API links

Retrieve The List Of Add-On Services For Corporate Contract

The API allows the list of additional service subscriptions (e.g. new letter, travel insurance) for the corporate contract to be retrieved.

The main input fields requested by the API are:

  • The issuer ID
  • The corporate contract for which the add-on subscriptions are requested: It can be provided by using the contract reference or the issuer external contract reference

The API response contains add-on subscription information such as:

  • The reference of the additional service subscription
  • The service type reference
  • The card contract or the account on which the subscription has been done
  • The date of subscription to the add-on service
  • The list of add-on service parameters if any

API links

Enable "on this page" menu on doc section
On

Company Addresses Management

Company Addresses Management

Retrieve company address information

The API returns the current version of a company's address.

Information to be provided in input:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)
  • The address reference or the issuer address reference

The address identifiers, address attributes, address usages and entity reference (application domain of the address) are displayed in the response.

API links

Create address for a company

The API allows to create either a permanent address or a temporary address for the company, identified with his reference.

To identify the company, it is needed to provide:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)

An address includes the following information:

  • the issuer address external reference
  • the label (e.g. HEAD_OFFICE)
  • the type (mail address, phone number, email) and the corresponding data
  • the address usages
  • the start date (optional, by default the current date is used)
  • the end date (conditional, is mandatory when creating a temporary address)

When creating a temporary address, If a temporary address already exists with an overlap on the activity period then only the newly created address will be kept and the old one will be removed.

The temporary address is active between its start date and end date.

One or several address usages can be added to the address (in order to retrieve this address). An address usage is used for specific business process/service. When adding a usage to an address, the usage is immediately active and if it is already assigned to another address, it is removed from this latter.

For information, the head office address is mandatory.

In return, the API provides the address reference calculated by the system.

API links

Update address of a company

The API updates all the attributes of a company's address.

To identify the address of the company for which updates are required, it is needed to provide:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)
  • The address reference or the issuer address reference

All the attributes must be provided even those unchanged (except for the usages).

The API allows to validate an address ('invalid' status is set to false). But it's not possible to invalidate an address changing the value of the invalid 'flag' to true. If the user tries to do this action, an error message is returned.

One or several address usages can be added to the address (in order to retrieve this address). An address usage is used for specific business process/service. When adding a usage to an address, the usage is immediately active and if it is already assigned to another address, it is removed from this latter.

All the usages already linked to the address cannot be removed via this API.

API links

Activate address of a company

The API allows to activate on demand of an address.

To activate the address of the company, it is needed to provide:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)
  • The address reference or the issuer address reference

If a temporary address exists, it becomes also active.

The address identifiers, address attributes and address usages are displayed in the response.

API links

Deactivate address of a company

The API is used to deactivate the address.

To deactivate the address of the company, it is needed to provide:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)
  • The address reference or the issuer address reference

The status becomes "INACTIVE".

This action is forbidden in case of:

  • the address label is the HEAD_OFFICE
  • an usage is linked to the address.

API links

Create an address usage for a company

The address usage describes in which business case the address will be used (eg statement sending, card delivery, ...). The complete authorized values list is shared during the product configuration between the issuer and WL.

This API allows a usage determined by its name (e.g. STATEMENT_SENDING) to be linked to the entity reference of the address (e.g. card contract reference) and the service code (e.g. ACCOUNT_SERVICE).

To create an address usage, it is needed to provide:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)
  • The address reference or the issuer address reference

API links

Remove an address usage of a company

The API deletes the address usages linked to one address.

To identify the address of the company, it is needed to provide:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)
  • The address reference or the issuer address reference

The address usages are filtered by the request params :

  • addressUsageName (for definition see the ressource addressUsage), mandatory
  • entityReference (for definition see the ressource addressUsage), optional
  • serviceCode (for definition see the ressource addressUsage), mandatory

If the entityReference is empty and the API finds several addresseUsages (for the addressUsageName and serviceCode in request param), then the list of addressUsages will be deleted.

API links

Enable "on this page" menu on doc section
On

Company's Management

Company's Management

Create a company

The API creates a company if all the mandatory fields are provided (see company's resource).

By default, the company is considered 'ACTIVE' if the Status field is not provided.

The default address of the company must be also configured.

The API returns a customer reference (as company).

API links

Retrieve company’s information

The "retrieve company's information" API allows the user to get company information.

Information to be provided in input:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)

In addition to the company information, it is also possible to request the list of addresses and contacts of the company.

API links

Update company’s information

The "update company" API allows the user to update the attributes of a customer (as company).

To identify the company, it is needed to provide:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company) for which updates are required

The customer reference can be retrieved by using the "Retrieve list of company's information" API.

All the attributes must be given in input even if they remain unchanged. For that, It can be needed to use the "retrieve company's information" API to get all the current attributes.

API links

Update company’s information partially

The "update company partially" API allows the user to update the attributes of a customer (as company).

To identify the company, it is needed to provide:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company) for which updates are required

The customer reference can be retrieved by using the "Retrieve list of company's information" API.

With this API, only attributes that need to be updated must be given in input.

API links

List companies for a given issuer

The "Retrieve list of company's information" API enables to get a list of customers based on multiple criteria such as corporateName, nationalFiscalNumber, address town name, address postal code.

All companies whose corporate name includes the 'corporate name' parameter are returned (e.g. 'zon' => 'amazon' + 'zon craft', ...)

API links

Retrieve company’s address information list

This API enables all the addresses associated with a given customer (as company), identified by customer reference or issuer customer reference to be retrieved.

To identify the company, it is needed to provide:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)

The address could be either a permanent address or a temporary address.

Several address types are managed. Each address can be used for a specific usage (card delivery, statement delivery, contract letter,...).

Address usage is associated to a service (card service, account service, dispute service, ..) configured in our system.

The API can retrieve only the addresses linked to a specific usage: in this case, all the mandatory 'AddressUsage' attributes must be provided (e.g. serviceCode, AddressUsage).

If the showHistory indicator is set to Y then the full history of the addresses and the future addresses are returned. If this indicator is empty (default behavior) or equals to N, then only the last active addresses are returned.

Address identifiers, Address attributes and Address usages are displayed in the response.

API links

List corporate’s contract for a company

This API enables all the contracts belonging to a given company to be retrieved.

Information to be provided in input:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)

The API response contains a list of contracts with related information.

API links

Create a contact

The API creates a contact person belonging to the company by providing information such as first name, name, department to which he is attached.

To create a contact, it is needed to provide:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)

API links

Update a contact

The API allows information of a contact of the company to be modified.

To update a contact, it is needed to provide:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)
  • The contact reference

All attributes must be provided (even if some of them have not been modified) else the value of missing attributes will be empty.

API links

Remove a contact

The API allows a contact of the company to be deleted.

To remove a contact, it is needed to provide:

  • The issuer ID
  • The customer reference or the issuer customer reference (as company)
  • The contact reference

API links

Enable "on this page" menu on doc section
On

Mobile Payment Operations

Mobile Payment Operations

Worldline proposes to Issuing banks to apply card digitization through its tokenization services.

Worldline proposes to Issuing banks to apply card digitization through its tokenization services. A “token” is a unique set of digits which replaces the usual card PAN number and lowers the payment card risk of compromise. Those tokens of real cards are shared in a secured way with mobile/wearable devices (smartphones with Apple pay or Samsung Pay solutions, watches for Garmin Pay, etc.) so that the cardholder can use them instead of the original card for proximity NFC payments with their devices. They can also be leveraged for the recurrent “Card-on-File” transactions (e.g. Netflix). Each context (devices, e-commerce merchants, etc.) will use a different token.

Our solution exposes a set of APIs to Issuers use cases.

Mobile Banking token provisioning support:

  • APP-TO-APP AUTHENTICATION – In this use case, the model is used for Mobile banking App as authentication factor, for identification and verification step
  • In App Provisioning – In this use case, Encrypted pass data (for Apple Pay) or payment instrument data (Google wallets) is generated for wallet activation

APP-TO-APP AUTHENTICATION

 

API Name: generate-crypto-otp

In case of App to App Authentication the cardholder is authenticated via the banking app and the issuer is required to generate a ‘Mobile Banking Authentication Code’ which is delivered via the wallet provider to VTS or MDES for final activation of the token. This Api is common to all Token Requestors, and can be requested by non-sensitive field, either on a specific token (TokenReferenceId), or on a specific card. The choice depends on implementation of mobile banking app.

This service lookup locally to retrieve card data, such as PAN and expiry dates, before computing the activation code, according to either VTS – App to App authentication, or MDES – App to App authentication. We assume that on this step, these data are known, as provisioning flow is already initiated, and on ‘step-up’ before activation.

If the request is done by card, this service requests I-TSP decoupling layer to retrieve card data before computing.

Flow diagram (request by token):

Request data

For Token Reference:

   

"URI":"https":{
   "Root Path"
}"/itsp-add/v2/issuers/9999/tokens/DNITHE301733961114298690/generate-crypto-otp 
Payload":{
   "tokenProviderID":"VTS"
}

For Card Reference:

"
URI":"https":{
   "Root Path"
}"/itsp-add/v2/issuers/9999/cards/52936061AAAP8026/generate-crypto-otp 
Payload":{
   "tokenProviderID":"MDES"
}

Response data


{
    "responseMetadata": {
        "correlationId": "QQI8qq6jIKq5gO78BocFzSSMI9cI2ReD",
        "statusMessage": "OK",
        "statusCode": 200,
        "responseDateTime": "2023-01-18T14:15:40.323Z",
        "timeTakenMs": 12
    },
    "data": {
        "cryptoOTP": "TUJBQUMtMS0xLTdBRjI5MUM5MUYzRUQ0RUY5MkMxRDQ1RUZGMTI3QzFGOUFCQzEyMzQ3RQ=="
    }

In App Provisioning

 

APPLE PUSH PROVISIONING

 

API Name: create-apple-tokenized-card

Background for Push Provisioning:

In case the cards are added via the banking app the issuer needs to generate the Payment Instrument Details to push the tokenization via the xPay wallet. In case of Apple Pay the issuer also has to add activation data for additional security. The Payment Instrument Details mainly contain the card number and the expiration date of the card which needs to be tokenized. The Payment Instrument Detail is pushed via the wallet server of the xPay based on the xPay interface specifications. The xPay wallet server than will forward it to VTS or MDES, and processed usually as a green flow.

Service provided by I-TSP for this purpose create-apple-tokenized-card (specific Apple variant), generates the complete Payment Data Payload for ApplePay, requested with non-sensitive card data. This service requests the Card Management System to retrieve card data, before computing the payload, according to either Visa or Mastercard flavors.

Note that Apple wallet returns Apple Certificate to mobile application. The validity of this certificate has to be controlled by Issuer (AC chain, dates, specific OID, CRL), and public key extracted, for addressing this service. They are duty of Issuer back-end. As I-TSP has no direct contractual agreement with Apple, there is no possibility to have details about format of Certificate data returned by Apple Wallet, as well as having valid test vectors. Nevertheless, Apple In-App Provisioning specification (document under NDA) gives details on this step.

Below a sample Java code to extract Public Key from Apple leaf certificate (X.509v3 / PEM format) before passing it to this I-TSP Api:

  
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate) certificateFactory.generateCertificate(new ByteArrayInputStream(certificateBytes));
System.out.println(Base64.toBase64String(certificate.getPublicKey().getEncoded()));

Flow diagram:

Request data


"URI":"https":{
   "Root Path"
}"/itsp-add/v2/issuers/9999/cards/52936061AAAP8026/create-apple-tokenized-card 
Payload":{
   "tokenProviderID":"VTS",
   "nonce":"2E1DF468",
   "nonceSignature":"401FE09091CE8CB9E8846199587E4417AAE9421F7E9BACB993C57A4E806C4F29716E350060769B0616A11164DF25229D56732A0A5BAEA388F284E5DA369BDA8A2510B86622720808FCA797AAAA8B4B2063",
   "applePublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELj5cz2uasEvnoi8/rM/ec8h+hxVTlKNIFUCKiWyhijdNrGaa879iIPyGN2f0r0dQfFvCIfxKGYdNrzm0B04+uA=="
}

Response data

 
{
   "responseMetadata":{
      "correlationId":"QQI8qq6jIKq5gO78BocFzSSMI9cI2ReD",
      "statusMessage":"OK",
      "statusCode":200,
      "responseDateTime":"2023-01-18'T'14:15:40.323Z",
      "timeTakenMs":12
   },
   "data":{
      "encryptedPassData":"aFKevI11muy+D1roaD08NuF2HGnIN5LRKDOGC00nTnERWtkR2IzB6jxe55p8mMc10K3GEjhUPIN2/g4D0wYkzk1GMg9z...",
      "activationData":"TUJQQUMtMS1GSy0xLS1UREVBLTgzQjlEOTdCMEEzM0FCRDk5RkQwQkI5NkEwMjM3NTEzNDNCMERDRDA3NTAyNTFFRTk1NTVBMzIzQUE1OTU1QjVGNjU3ODBERTZGNDk4NkI5",
      "ephemeralPublicKey":"BPrz+LFGyvw3WbuveJ7rLOUKYC2S0lJXYVFXSUCjYTiiS/pT64+Wri3gp3QUIMx8W7mx+Iab5TMC2UDRqMknICY="
   }
}

GOOGLE PUSH PROVISIONING

 

VTS Push Provisioning

 

API Name: create-vts-tokenized-card

Background for Push Provisioning:

In case the cards are added via the banking app the issuer needs to generate the Payment Instrument Details to push the tokenization via the xPay wallet. The Payment Instrument Details mainly contain the card number and the expiration date of the card which needs to be tokenized. The Payment Instrument Detail is pushed via the wallet server of the xPay based on the xPay interface specifications. The xPay wallet server than will forward it to VTS or MDES, and processed usually as a green flow.

Service provided by I-TSP for this purpose is create-vts-tokenized-card (generic per Visa specifications).It is used by all non-Apple wallets (for example by Google who calls structure Opaque Payment Data).

The following web service generates the complete Card Provisioning Payload as specified by VTS, requested with non-sensitive card data (issuerCardIdcardReference, that is a Surrogate of the PAN).

This service requests the Card Management System to retrieve card data, before computing the payload, according to Visa “Payment Instrument Details” structure for Push Provisioning.

Flow diagram:

Request data

    
URI: https://{Root Path}/itsp-add/v2/issuers/9999/cards/52936061AAAP8026/create-vts-tokenized-card 
Payload : 
{ 
       "clientWalletAccountID": "Lejk2eFZ0gPe9DOFNDAhfHy3",
"clientWalletProvider": "40010075001",
"clientDeviceId": "rdtZyP8u4O5LkQFRgPAB-sHo",
"clientAppID": "de.issuerbanking.mobil",
"country": "DE"
}

Response data

    {
    "responseMetadata": {
        "correlationId": "QQI8qq6jIKq5gO78BocFzSSMI9cI2ReD",
        "statusMessage": "OK",
        "statusCode": 200,
        "responseDateTime": "2023-01-18'T'14:15:40.323Z",
        "timeTakenMs": 12
    },
    "data": {
        "paymentInstrumentDetails": "ewoiYWxnIjoiQTI1NkdDTUtXIiwKInR5cCI6IkpPU0UiLAoiaXYiOiJRYVNLdG1qSUpfYnF4OHpzIiwKInRhZyI6IkFweEpuSmJNeTU1OTMzeWZBTFJTY1E9PSIsCiJraWQiOiJOMVdHMThJM1QySDYwOFZHSUZLMjEzUDVKeXdjOFF2WGRUamVBRXR1azdMN0VwZHZ3IiwKImNoYW5uZWxTZWN1cml0eUNvbnRleHQiOiJTSEFSRURfU0VDUkVUIiwKImVuYyI6IkEyNTZHQ00iLAoiaWF0IjoiMTU4NjM1MDkxNCIKfQ.tYYvs2Cdn0qkVNnE5xDAgGkjx-sBQMP7sA-yj1diVL0.1vWxDYGJs5sPqoaa.LzoOgr97kxNUMZfoKdg8L6OsK3HHQvL2dJYRUddqfD-F90LwBNv24Gc5oOfTYuHSjSYqpP82YQcfhPOYexuW7vRWgwxEQo2tT6Vz4n3Zuy5vsT5OFLMSXtMmJpMqqh3ktvZo9D6NCjqzFlIMJFnUpxiX3dUrmUuCq4bGKxoY6C5KLBDhRo4pEyRsjMNugCVSrKTmAW-SnpFmyW8L066a1HfAQoPomMycZ5U26MPPN__x8k57fDycHn8a6BwWm4ssncJP1sHVPxIpmzGkA89g62n_gxIIWkajdA9tA6t9qaokKfL1wqhVvAch-TxhdLTNORhF_UzlZAILmTe3dsDeZlwy8VOzDpih_zo3Jjj5CYbDiR1yOwnjM35pcBByKouKwYTIxlo4L2Pnfk1QaaNjdVAvA4cPMwQSSymG0hUEZfXOjHBJVUyMAlBLZrwcOlkEwV7iQyusKBqT-j0Y9ULTfYoOv5FD_HMf6pNOcVUf5MqMHlONXurje_VaCU1KahR5_F3HB_YCM7Es74DjAtM-UDJ3YHsKX2aNEX5PbCcRophcVlpkgBC1VhUqgYz0Iytq0GkfFepqrGU0hLrk-CrOm9vNRE8.6T00_EU219IJBNreH7rMnQ"
    }
}

MDES Push Provisioning

 

API Name: create-mdes-tokenized-card

Background for Push Provisioning:

In case the cards are added via the banking app the issuer needs to generate the Payment Instrument Details to push the tokenization via the xPay wallet. The Payment Instrument Details mainly contain the card number and the expiration date of the card which needs to be tokenized. The Payment Instrument Detail is pushed via the wallet server of the xPay based on the xPay interface specifications. The xPay wallet server then will forward it to VTS or MDES, and processed.

Service provided by I-TSP for this purpose is create-mdes-tokenized-card. It is used by all non-Apple wallets (for example by Google who calls structure Opaque Payment Data).

The following web service generates the complete Card Provisioning Payload as specified by MDES, requested with non-sensitive card data (issuerCardId, that is a Surrogate of the PAN).

This service requests Card Management system to retrieve card data, before computing the payload, according to Mastercard “Issuer Initiated Digitization Data” structure for Push Provisioning (Funding Account Info + Tokenization Authentication Value).

Flow diagram:

Request data

    URI: https://{Root Path}/itsp-add/v2/issuers/9999/cards/52936061AAAP8026/create-mdes-tokenized-card 
Payload : 
{ 
       "clientWalletProvider": "50120834693"
} 

Response data

    
{
   "responseMetadata":{
      "correlationId":"QQI8qq6jIKq5gO78BocFzSSMI9cI2ReD",
      "statusMessage":"OK",
      "statusCode":200,
      "responseDateTime":"2023-01-18'T'14:15:40.323Z",
      "timeTakenMs":12
   },
   "data":{
      "issuerInitiatedDigitizationData":{
         "fundingAccountInfo":{
            "encryptedPayload":{
               "encryptedData":"4545433044323232363739304532433610DE1D1461475BEB6D815F31764DDC20298BD779FBE37EE5AB3CBDA9F9825E1DDE321469537FE461E824AA55BA67BF6A",
               "publicKeyFingerprint":"4c4ead5927f0df8117f178eea9308daa58e27c2b",
               "encryptedKey":"A1B2C3D4E5F6112233445566",
               "oaepHashingAlgorithm":"SHA512",
               "iv":"31323334353637383930313233343536"
            }
         },
         "tokenizationAuthenticationValue":"\"ew0KICAgInZlcnNpb24iOiAiMyIsDQogICAic2lnbmF0dXJlQWxnb3JpdGhtIjogIlJTQS1TSEEyNTYiLA...”
         }
    }
}"
Enable "on this page" menu on doc section
On

ob-p-ideal-refund

Refund Processing

Refunds are reversal transactions wherein complete or partial money is moved back to customer’s source account (account from which actual payment was made). Refund can only be created for a successful or settled transaction: 

  • Customer initiated refunds (returns or cancellation) - e.g. if the Customer has changed his mind about consumption of product pre/post order delivery.
  • Initiating Party initiated refunds - e.g. if a product/service is out of stock or there is a mismatch in transaction status between payment and Initiating Party wherein transaction is failed state at merchant's end but is successful at payments end. 

For the refund processing the data from the original iDEAL request / response are used, so that the resulting refund transaction can be reconciled with the original transaction.

Offline Refunds

As part of the transaction processing we offer a secure Offline Refund Processing (via API's or the Backoffice). The activity diagram below describes the process. 

Refund option for iDEAL

The Backoffice GUI can be used to register and export refunds to a pain.001 file. This pain.001 file has to be provided to the bank of the merchant. This delivery is not done by the Open Banking Service, therefore this refund method is named 'offline'.

Enable "on this page" menu on doc section
On

ob-p-a2a-refund

Refund Processing

Refunds are reversal transactions wherein complete or partial money is moved back to customer’s source account (account from which actual payment was made). Refund can only be created for a successful or settled transaction: 

  • Customer initiated refunds (returns or cancellation) - e.g. if the Customer has changed his mind about consumption of product pre/post order delivery.
  • Initiating Party initiated refunds - e.g. if a product/service is out of stock or there is a mismatch in transaction status between payment and Initiating Party wherein transaction is failed state at merchant's end but is successful at payments end. 

For the refund processing the data from the original Account-to-Account request / response are used, so that the resulting refund transaction can be reconciled with the original transaction.

As part of the transaction processing we offer a secure Refund Processing Online (via API's) or Offline (via API's or the Backoffice). The activity diagram below describes the difference between those two processes. Note: Online and Offline refunds both offer API's, those API's are different.

Refund options

Please note: The Refund processing allows either Online or Offline Refunds.

Online Refunds 

Endpoint: POST /refunds

Use the API's to initiate payments of refunds. Multiple refunds can be payed in one go, if the merchant bank supports bulk-payments.

Offline Refunds

The Backoffice GUI can be used to register and export refunds to a pain.001 file. This pain.001 file has to be provided to the bank of the merchant. This delivery is not done by the Open Banking Service, therefore this refund method is named 'offline'.

Enable "on this page" menu on doc section
On

ob-data-ais-notification

Push Notification

API Reference

Instead of polling the consent status you may want to delegate it to Worldline. The Open Banking Service will poll the bank and notify you on consent status changes by posting notifications. Note, that bank polling happens within a few days since consent initiation. 

POST Status

Endpoint: POST /status

Base URL: URL provided by you as part of your onboarding

This API will notify the initiating party about the status of the consent. More details about the fields can be found in the API reference.

Data model

Request (Click to enlarge)Response
Post status request dataPost status response
Enable "on this page" menu on doc section
On

ob-data-overview

Data Overview

In this section you will find implementation details of our Account Data Products:

Bank Connect, Account Insights and Credit Insight.

For faster integration and better user experience we offer a set of predefined screens that could be customised with your branding allowing to choose the user bank and handling the complexity of different PSD2 authorization flows (redirect / decoupled / embedded), so that you will be able to focus on your product and leave the boring stuff to us.

Depending on the implemented product, the consent can be for one-time or for ongoing up to approximately 6 months access  to the data. Once the consent is expired you can prompt the user to renew the consent to ensure uninterrupted data access.

The data retrieved also depends on the implemented product and could consist of account details (e.g. account name or IBAN), balances and the list of transactions

Whenever a recurring consent is granted, you can access the information as many times per day as needed as long as the user is actively using your software. In case you would like to perform a background data refresh, you can do so up to 4 times per day by either polling the banking data and identifying the new transactions by yourself or by letting Worldline to pull the updated banking data multiple times per day based on a predefined schedule, comparing the results to historical data and notifying you only on the differences.

To implement Bank Connect, Account Insights products, please review the Account Data section. We have a dedicated section for Credit Insight implementation.

Need help?

Please get in touch with us and we will  help you to integrate our APIs.

Enable "on this page" menu on doc section
Off