--- title: "Add cost contracts" description: "Create a new cost contract for multiple account keys." url: "https://docs.adyen.com/account-management-api/manage-cost-contracts/addcostcontracts" source_url: "https://docs.adyen.com/account-management-api/manage-cost-contracts/addcostcontracts.md" canonical: "https://docs.adyen.com/account-management-api/manage-cost-contracts/addcostcontracts" last_modified: "2026-05-24T12:54:32+02:00" language: "en" --- # Add cost contracts Create a new cost contract for multiple account keys. [View source](/account-management-api/manage-cost-contracts/addcostcontracts.md) The `/addCostContracts` endpoint works like [addCostContract](/account-management-api/manage-cost-contracts/addcostcontract), the only difference being the ability to create contracts for multiple account keys. ##  Request parameters To add new cost contract entries for multiple account keys, make a POST `/addCostContracts` request specifying: | Name | Type | Required | Description | Notes | | ------------------ | ---------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | `accountKeys` | List | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | A list holding account key value stringsEach string in the list holds an account key value.Account key: Unique reference to identify an account.- Company account key format: `Company.COMPANY_CODE` - Merchant account key format: `Merchant.MERCHANT_CODE` |   | | `billable` | Boolean | ![-x-](/user/data/smileys/emoji/x.png "-x-") | * `true`: the cost contract is billable. * `false`: the cost contract is not billable. | If the specified account key refers to a merchant account, leave this field empty/do not assign a value to this field. | | `costContractName` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The name identifying the cost contract. The specified name needs to be a valid one, i.e. it needs to be on the cost contract list assigned to the company or merchant. |   | | `minimumAmount` | int (Long) | ![-x-](/user/data/smileys/emoji/x.png "-x-") | The minimum chargeable amount per invoice. The value is represented using the euro currency and minor units (i.e. *1000* = EUR 10). | If the specified account key refers to a merchant account, leave this field empty/do not assign a value to this field. | | `minimumTxs` | int | ![-x-](/user/data/smileys/emoji/x.png "-x-") | The minimum number of transactions per month. | If the specified account key refers to a merchant account, leave this field empty/do not assign a value to this field. | | `remark` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | Free text comment or remark about the cost contract. | If the specified account key refers to a merchant account, leave this field empty/do not assign a value to this field. | | `startYear` | int | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The starting year when the cost contract becomes effective. | *Start date = startMonth + startYear *The starting date needs to be set not earlier than a month, and not later than two years in the future. | | `startMonth` | int | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The starting month when the cost contract becomes effective. | *Start date = startMonth + startYear *The starting date needs to be set not earlier than a month, and not later than two years in the future. | ## Response parameters If there are no errors in the request, the call returns a `pspReference.`If any issues occur during the process, the call returns one or more warning or error messages. | Name | Type | Returned by default | Description | | -------------- | ------ | ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `pspReference` | String | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | A reference to uniquely identify the request. Returned when a new contract is created for the specified account keys in the `accountKeys` list. | | `warnings` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | List containing one or more warning messages about one or more cost contract creations with problems. Returned when the new contract creation for the specified account keys in the `accountKeys` list does not work as expected. | | `errors` | String | ![-x-](/user/data/smileys/emoji/x.png "-x-") | List containing one or more error messages about one or more failed cost contract creations. Returned when the new contract creation for the specified account keys in the `accountKeys` list fails. | ## Examples ### Request #### JSON ```json { "accountKeys":[ "MerchantAccount.TestMerchant", "MerchantAccount.TestMerchantNotExists", "MerchantAccount.TestMerchantOwnedByOthers", "TestMerchant", "MerchantAccount.TestMerchant" ], "costContractName":"merchantDemoContract", "startMonth":"10", "startYear":"2015" } ``` #### Soap ```xml MerchantAccount.TestMerchant MerchantAccount.TestMerchantNotExists MerchantAccount.TestMerchantOwnedByOthers TestMerchant MerchantAccount.TestMerchant merchantDemoContract 10 2015 ``` ### Response #### JSON ```json { "pspReference":"9914526910170142" } ``` #### Soap ```xml   9914526910170142 ``` ###  Response in case of an error #### JSON ```json { "pspReference":"9914386732540034" } ``` #### Soap ```xml 8_009 incorrect accountKey '', should be in the form of 'Company.companyCode' or 'MerchantAccount.merchantCode' failed 'MerchantAccount.TestMerchantNotExists': could not retrieve account 'MerchantAccount.TestMerchantNotExists' 8_007 lacks permission to account 'MerchantAccount.TestMerchantOwnedByOthers' 8_009 incorrect accountKey 'TestMerchant', should be in the form of 'Company.companyCode' or 'MerchantAccount.merchantCode' 9914386732540034 ```