Contract

Contract refers to the Customer contracts created in our solution. The contract inherits default value from Product with the possibility to override  some specific parameters, such as fees, terms and conditions, credit limit, card layout reference.

Each Contract is identified by a unique contractReference and optionally by a unique issuerContractExternalReference per Issuer.

 

Contract Creation

create-consumer-contract.png

In order to create a contract for a customer, the API Create consumer contract is used : POST /issuers/{issuerId}/contracts/create-consumer-contract

As a prerequisite to create a contract and its related Cards and Accounts, the Issuer and Product should be configured and their references known by the Issuer. Cards and Accounts are created according to the product configuration

The request is composed of two parts

  • an optional list of customers to be created and that could be used as contractOwner, cardHolder, or accountOwner. By default the contractOwner is the cardHolder and the accountOwner.
  • the contract structure referring to the Product via the issuerProductExternalReference and the different Card (cardTemplateReference) and Account (accountTemplateReference) Templates defined for this Product. The attributes of the request could be used to override some of the default behaviors defined at Product level
{
   "customers":[
      {
         "requestCorrelationId":"1",
         "courtesyTitle":"Mrs",
         "lastName":"Lena",
         "firstName":"Broderick",
         "addresses":[
            {
               "addressLabel":"MAIN_POSTAL_ADDRESS",
               "addressType":"POSTAL_MAIL",
               "postalAddress":{
                  "line1":"address_line1_string_1",
                  "country":"country_string_1"
               }
            }
         ]
      }
   ],
   "contract":{
      "issuerProductExternalReference":"issuerProductExternalReference",
      "contractOwnerRequestCorrelationId":"1",
      "accountHierarchy":{
         "accounts":[
            {
               "accountTemplateReference":"RootAccountTemplateReference"
            },
            {
               "accountTemplateReference":"ChildAccountTemplateReference"
            }
         ]
      },
      "cardContracts":[
         {
            "cardTemplateReference":"cardTemplateReference"
         }
      ]
   }
}

As a result the Contract is created for the customer with its Card Contracts and Accounts. 

Adding additional cards and accounts

 add-cards-and-accounts

To add cards and related accounts to an existing contract use the following endpoint  : POST /issuers/{issuerId}/contracts/{contractReference}/add-cards-accounts by providing the issuerId of the Issuer and contractReference identifying the Contract.

Contract Closure

Contracts can be closed either immediately or scheduled using the endpoint POST /issuers/{issuerId}/contracts/{contractReference}/close

 

Other Contract APIs

Furthermore the contracts can be managed through the following endpoints:

  • Retrieve contract data : GET /issuers/{issuerId}/contracts/{contractReference}
  • Retrieve contract owner : GET /issuers/{issuerId}/contracts/{contractReference}/contract-owner
  • List accounts for a given contract : GET /issuers/{issuerId}/contracts/{contractReference}/accounts
  • List card contracts for a given contract : GET /issuers/{issuerId}/contracts/{contractReference}/card-contracts

 

Enable "on this page" menu on doc section
On