Use the /contract/save
resource to add or edit contracts.
This endpoint requires a token for the parent account.
This endpoint can be used to trigger the creation (or modification) of a contract in the parent account as the result of a user action. General creation of contracts is not an activity appropriate for child account users.
A default contract and payee are automatically created upon account creation; the contract automatically inherits all assets in the account (that are not explicitly covered by a more specific contract), and the default payee is named as the only payee.
Unless otherwise stated, the Revelator API does not support partial updates. When editing an object, the existing values of any omitted parameters will be deleted or overwritten, according to the designated behavior for a null value for that parameter. Consequently, we recommend you always query the object you want to edit and modify the JSON object to avoid partial update problems.
/accounting/contract/save
Parameter | Type | Description |
---|---|---|
name required | string | Name of the contract. |
contractId optional | integer | Id of the existing contract to edit.
|
contractTypeId required | integer | 1 - specifies a Distribution Agreement. |
startDate required | string | Date from which the contract is effective, in the format YYYY-MM-DD . This date is for reference only is not enforced when calculating royalties. |
expirationDate required | string | Date the contract becomes ineffective, in the format YYYY-MM-DD . If your contract is “in perpetuity”, please indicate 2099-12-31. This date is for reference only is not enforced when calculating royalties. |
isActive optional | boolean | Whether the contract is active. Inactive contracts are not used for royalty calculations.
|
contractPayees required | array of objects | Each object represents a payee and details their royalty information. The sum of every non-comission payee’s sharePercentage must equal 100. See Contract Payee Object |
contractLicensors required | array including one object* | Object represents a licensor (artist or label) and provides information for which of the licensor’s assets should be subject to the contract. *Although contractLicensors is an array, the array should include only one object. For additional licensors, please create a separate contract. See Contract Licensor Object |
contractReleases optional | array of objects | Specifies which releases should be included in the contract when only some of the licensors assets are included in the contract. Each object in the array includes a release ID: {"releaseid": <integer>}
|
contractTracks optional | array of objects | Specifies which tracks should be included in the contract when only some of the licensors assets are included in the contract, and only when some of the tracks on releases are included in the contract. Each object in the array includes a track ID: {"trackid": <integer>}
|
contractTerms required | array of objects | Specifies terms for the contract. See Contract Terms Object |
payMechanicals optional | boolean |
|
mechanicalsTypeId optional 1 | integer | Rate type for mechanicals:
payMechanicals is true. |
mechanicalsSalesPercentage optional 2 | integer | Sales percent. 2Mandatory when mechanicalsTypeId is 1. |
mechanicalsFixedPennyRate optional 3 | integer | Penny rate. 3Mandatory when mechanicalsTypeId is 2. |
mechanicalsIsFullRate optional 4 | boolean | Rate basis:
mechanicalsTypeId is 3. |
mechanicalsRatePercentage optional 4 | integer | Rate percent. 4Mandatory when mechanicalsTypeId is 3. |
Parameter | Type | Description |
---|---|---|
sharePercentage optional | integer |
|
startingBalance optional | integer | The payee’s startingBalance. Defaults to 0 for new payees. Defaults to the current value for existing payees. Cannot be changed for existing payees; the request will fail if the provided value does not match the current value. |
isCommissionPayee optional | boolean |
|
payee required | object | Details of the payee. See Payee Object |
permission optional | object | The permissions the payee has in their payee portal. This parameter sets permissions for the payee to log into the Revelator UI. It is not relevant for most API use cases, and is never relevant when the payee already has a user/child account that was created with the signup resource. |
Parameter | Type | Description |
---|---|---|
payeeId optional | integer | ID for an existing payee to associate with the contract.
you should never create a new payee for a user for whom you have already created a child account. |
companyName required | string | Name of the payee. When omitted, defaults to the name of the contact. |
contact required | object | Contact information for the payee. |
contact.contactId optional | integer | ID for an existing contact.
|
contact.name optional | string | Name of the contact. Defaults to the companyName . |
contact.email optional | string | Contact’s email address. This email is used for sending statement notifications when automatic email notifications are enabled. |
currencyCode optional | integer | Currency code for the payee’s currency. Defaults to the parent account’s currency code. Look up currency codes using the GET /common/lookup/currencies resource. |
paymentProviderId optional | integer |
|
paymentUserId optional | string | Paypal email address for the payee. Only necessary when using the Paypal integration for paying the payee. |
Parameter | Type | Description |
---|---|---|
id optional | GUID | ID for an existing contract licensor entity. Not relevant for new contracts. Should be provided when editing existing releases. |
licensorType required | integer | Type of licensor that will be used to specify the assets to include in the contract.
includeFutureAssets is true, only the primary artist on the asset is considered; contributors are ignored, including contributors with the role “primary”. |
licensorId required | string | ID of the licensor. Either an artistId or labelId , according to the licensorType . |
includeFutureAssets optional | boolean |
|
Parameter | Type | Description |
---|---|---|
contractTermsId optional | GUID | ID for an existing contract terms entity.
|
contractTermsRate optional | integer | Percent of the revenue being paid out to payees. Defaults to 0. |
contractTermsRateTypeId required | integer |
|
isCountriesIncluded optional | boolean |
|
isDistributorStoresIncluded optional | boolean |
|
countries optional | array of integers | IDs for the countries included or excluded from the contract. See isCountriesIncluded . Lookup country IDs using the GET /common/lookup/countries resource. |
distributorStores optional | array of integers | IDs for the services included or excluded from the contract. See isDistributorStoresIncluded . Look up DSP IDs using the GET /common/lookup/stores resource. Provide an access token to retrieve only the DSPs enabled for a specific account. |
releaseTypes optional | array of integers | Types of releases to include in the contract terms:
|
deliveryTypes optional | array of integers | Delivery channels to include in the contract terms. Each integer in the array is an ID that represents a delivery type; each channel includes multiple delivery types.
|
{
"contractId": 0,
"name": "string",
"contractTypeId": 0,
"startDate": "2021-10-26T18:19:07.921Z",
"expirationDate": "2021-10-26T18:19:07.921Z",
"mechanicalsTypeId": 0,
"mechanicalsSalesPercentage": 0,
"mechanicalsIsFullRate": true,
"mechanicalsRatePercentage": 0,
"mechanicalsFixedPennyRate": 0,
"payMechanicals": true,
"isActive": true,
"contractTerms": [
{
"contractTermsId": "00000000-0000-0000-0000-000000000000",
"contractTermsRateTypeId": 0,
"contractTermsRate": 0,
"isCountriesIncluded": true,
"isDistributorStoresIncluded": true,
"countries": [
0
],
"deliveryTypes": [
0
],
"releaseTypes": [
0
],
"distributorStores": [
0
]
}
],
"contractReleases": [
{
"releaseId": 0,
}
],
"contractTracks": [
{
"trackId": 0
}
],
"contractLicensors": [
{
"id": "00000000-0000-0000-0000-000000000000",
"licensorType": "Artist",
"licensorId": 0,
"includeFutureAssets": true
}
],
"contractPayees": [
{
"sharePercentage": 0,
"startingBalance": 0,
"isCommissionPayee": true,
"permission": {
"enterpriseId": 0,
"enterpriseName": "string",
"labelId": 0,
"publisherId": 0,
"artistId": 0,
"payeeId": 0,
"imageId": "00000000-0000-0000-0000-000000000000",
"name": "string",
"permissionsAccountId": "00000000-0000-0000-0000-000000000000",
"isOwner": true,
"readOnlyContent": true,
"readOnlyContracts": true,
"readOnlyFinance": true,
"readOnlyDistribution": true,
"readOnlyPromote": true,
"readOnlyDaily": true,
"permissionRolesId": 0,
"isActive": true,
"email": "string"
},
"payee": {
"paymentProviderId": 0,
"paymentUserId": "string",
"currencyCode": "string",
"contact": {
"contactId": 0,
"name": "string",
"currencyCode": "string",
"email": "string"
},
"payeeId": 0,
"companyName": "string"
}
}
]
}