---
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 |  | 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 |  | * `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 |  | 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) |  | 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 |  | 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 |  | 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 |  | 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 |  | 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 |  | 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 |  | 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 |  | 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
```