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
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
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