ob-p-a2a-step3

Step 3 Payment Authorisation

The payer needs to approve payment execution to their bank. Payer’s bank will apply a strong customer authentication (SCA) to ensure payer's identity. This can lead to multiple flows in which a payment can be completed. 

If you are Using the Worldline Open Banking functions directly, depending on the payment flow, you have to implement the Payment Authentication API's.

For faster integration and better user experience we offer a Bank Selection Interface that could be customised with your branding allowing to choose the payer's 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. 

Enable "on this page" menu on doc section
On

ob-p-a2a-step1

Step 1 Payment Preparation

As part of this step, you will determine payment details such as payment amount, payment product (e.g. SEPA Credit, SEPA Instant credit, domestic or cross-border payments), whether  it is a single or bulk payment etc. Typically, this will be done as part of shopper’s check out or in context of invoice payment and will be handled by your software.  

You will need to let the payer choose their bank out of the list returned by the Reach Directory. We recommend refreshing the list of banks and their attributes once a day. Please note that some of the banks require additional information such as payer’s IBAN to be collected in advance.  You will find this information under the bank details provided by the Reach API. In addition, you can determine the preferred payment authorisation flow out of the ones supported by the bank (redirect / embedded / decoupled). 

As there is a lot of complexity related to the implementation of different payment flows and handling bank specific information, we recommend using our Bank Selection Interface for single payments – this is a set of predefined screens that can be customised to match your branding. As they are already integrated with the Reach API and Payment API, you only need to embed them as part of the user flow in your system. This will simplify the integration effort but its usage is optional.

In case you decided to not use the Bank selection interface, once you gathered all the necessary details, you can move to Step 2 - payment initiation.

Enable "on this page" menu on doc section
On

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

Release Notes: REST API V2 - 2.16.2

REST API V2 - 2.16.2

Version 2.16.1 to 2.16.2

What's New

POST /api/v2/issuers/{issuerId}/cards/{cardReference}/create-apple-tokenized-card

Create Apple Tokenized Card

The following web service generates the complete Payment Data Payload for ApplePay

POST /api/v2/issuers/{issuerId}/cards/{cardReference}/create-mdes-tokenized-card

Create Mdes Tokenized Card

This service enables generates the complete google Payment Data Payload for MDES

POST /api/v2/issuers/{issuerId}/cards/{cardReference}/create-vts-tokenized-card

Create Vts Tokenized Card

Generates the complete Payment Data Payload for VTS

GET /api/v2/issuers/{issuerId}/tokens/{tokenReference}/card-reference{?provider}

Get Card Id For Token

This webservice allows local lookup for card identifier (issuerCardId) on a specific Token

POST /api/v2/issuers/{issuerId}/cards/{cardReference}/generate-crypto-otp

Generate Crypto OTP For Card Reference

This service computes OTP, according to either VTS or MDES App to App authentication

POST /api/v2/issuers/{issuerId}/tokens/{tokenReference}/generate-crypto-otp

Generate Crypto OTP For Token

This service computes OTP, according to either VTS or MDES App to App authentication

GET /api/v2/issuers/{issuerId}/cards/{cardReference}/token-list

Get Token By Card Reference

This service returns a token list attached to a given card. The data are the current G-itsp data and could face a desynchronization with scheme referential

 

What's Changed

No API changed.

What's Deleted

No API deleted.

What's Deprecated

No API deprecated.

Enable "on this page" menu on doc section
On

Release Notes: REST API V2 - 2.16.1

REST API V2 - 2.16.1

Version 2.15.1 to 2.16.1

What's New

GET /issuers/{issuerId}/card-contracts/

List card contracts (beta)

The API allows the list of card contracts to be retrieved which have the same card contract group reference. The main input fields are:

  • The issuer ID
  • The group reference of the card contract for which the detail is requested:

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

In return, the interface provides the generic information (mainly master data) relevant to the card contract.

What's Changed

GET /issuers/{issuerId}/corporate-contracts/{contractReference}/corporate-employee-accounts/{accountReference}
Response:
  • Changed property data (object CorporateEmployeeAccount)
    • Added property contractFee (object)
    • Deleted property contractFees (object)
GET /issuers/{issuerId}/corporate-contracts/{contractReference}/corporate-employee-accounts/external-accounts/{issuerAccountExternalReference}
Response:
  • Changed property data (object CorporateEmployeeAccount)
    • Added property contractFee (object)
    • Deleted property contractFees (object)
GET /issuers/{issuerId}/corporate-contracts/external-contracts/{issuerContractExternalReference}/corporate-employee-accounts/external-accounts/{issuerAccountExternalReference}
Response:
  • Changed property data (object CorporateEmployeeAccount)
    • Added property contractFee (object)
    • Deleted property contractFees (object)
GET /issuers/{issuerId}/corporate-contracts/external-contracts/{issuerContractExternalReference}/corporate-employee-accounts/{accountReference}
Response:
  • Changed property data (object CorporateEmployeeAccount)
    • Added property contractFee (object)
    • Deleted property contractFees (object)
GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}/account-history
Response:
  • Changed property data (array)
    • Changed items (object AccountHistory)
      • Added property sepaMandateUmr (string)
      • Added property sepaCreditorId (string)
GET /issuers/{issuerId}/accounts/{accountReference}/account-history
Response:
  • Changed property data (array)
    • Changed items (object AccountHistory)
      • Added property sepaMandateUmr (string)
      • Added property sepaCreditorId (string)
POST /issuers/{issuerId}/contracts/create-consumer-contract
Request body :
  • Changed property addCardsAccounts (object CreateConsumerContractRequest.AddCardsAccounts)
    • Changed property cardContracts (array)
      • Changed items (object CreateConsumerContractRequest.CardContract)
        • Changed property card (object CreateConsumerContractRequest.Card)
          • Added property brandChangePreviousCardReference (string)
          • Added property brandChangeReplacementReason (string)
POST /issuers/{issuerId}/contracts/external-contracts/{issuerContractExternalReference}/add-cards-accounts
Request body :
  • Changed property cardContracts (array)
    • Changed items (object CreateConsumerContractRequest.CardContract)
      • Changed property card (object CreateConsumerContractRequest.Card)
        • Added property brandChangePreviousCardReference (string)
        • Added property brandChangeReplacementReason (string)
POST /issuers/{issuerId}/contracts/{contractReference}/add-cards-accounts
Request body :
  • Changed property cardContracts (array)
    • Changed items (object CreateConsumerContractRequest.CardContract)
      • Changed property card (object CreateConsumerContractRequest.Card)
        • Added property brandChangePreviousCardReference (string)
        • Added property brandChangeReplacementReason (string)

What's Deleted

No API deleted.

What's Deprecated

No API deprecated.

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

Enable "on this page" menu on doc section
On