Download OpenAPI specification:
Welcome to the Payaca API docs.
The external API uses HTTP Basic Authentication with client credentials (Client ID and Client Secret).
API credentials can be created through the Payaca provider web application:
Include your credentials in the Authorization header using HTTP Basic Authentication:
curl -X GET https://api.payaca.com/v1/customers \
-u "your-client-id:your-client-secret"
Or encode the credentials manually:
# Base64 encode "client-id:client-secret"
AUTH_HEADER=$(echo -n "your-client-id:your-client-secret" | base64)
curl -X GET https://api.payaca.com/v1/customers \
-H "Authorization: Basic $AUTH_HEADER"
Webhooks allow you to receive real-time notifications when events occur in your Payaca account.
Webhooks can be created through the Payaca provider web application:
invoice.fullyPaid, scheduledEvent.created)When a subscribed event occurs a POST request is made to the webhook URL with a JSON payload and signature from your provided secret.
All webhook payloads include an X-Payaca-Signature header for verification,
containing an HMAC-SHA256 signature of the payload
X-Payaca-Signature: a2114d57b48eac7b4cde7f32c991906e42c79dc606e60c5093f02c3afc567f78
X-Payaca-Signature header.If you respond with HTTP 2XX or 4XX, we will not attempt to redeliver a webhook.
We will retry with exponential backoff in the following circumstances:
Adds Tags to a Customer.
| id required | string Example: xyz |
| tagNames required | Array of strings[ items [ 1 .. 30 ] characters /^((\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud0... ] |
{- "tagNames": [
- "New lead",
- "Solar"
]
}{- "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}
}Removes Tags from a Customer.
| id required | string Example: xyz |
| tagNames required | Array of strings[ items [ 1 .. 30 ] characters /^((\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud0... ] |
{- "tagNames": [
- "New lead",
- "Solar"
]
}{- "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}
}Update an existing Customer.
| id required | string Example: xyz |
object or null Provide values for any custom fields the Account has configured for their Customers. The key should be the custom field identifier |
{- "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}
}{- "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}
}Get an existing Customer.
| id required | string Example: xyz |
{- "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}
}Creates a new Customer, or if any Customer with an email exists, adds to that one instead. If multiple Customers are found, the earliest created one is used.
| name | string or null |
required | Array of objects non-empty |
Array of objects or null | |
object or null Provide values for any custom fields the Account has configured for their Customers. The key should be the custom field identifier |
{- "name": "Harper Property Management",
- "contacts": [
- {
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "address": {
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom"
}, - "isBillingAddress": true,
- "accessContacts": [
- {
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}
}{- "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}
}Creates a new address against the Customer.
| id required | string Example: xyz |
required | Structured (object) or String (string) |
| isBillingAddress | boolean or null Default: false |
Array of objects or null |
{- "address": {
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom"
}, - "isBillingAddress": true,
- "accessContacts": [
- {
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}{- "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}
}Project has been moved to a different pipeline stage.
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "project.pipelineStageChanged" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "project.pipelineStageChanged" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "project.pipelineStageChanged",
- "payload": {
- "project": {
- "id": "xyz",
- "reference": "ABC123",
- "pipeline": {
- "title": "Install"
}, - "pipelineStage": {
- "title": "New Lead"
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}, - "tags": [ ],
- "assignedTo": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}, - "siteAddress": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "notes": [
- "string"
], - "paymentSchedule": {
- "stages": [
- {
- "description": "Deposit payment",
- "percentageDue": 50,
- "isDeposit": true
}, - {
- "description": "Final payment on completion",
- "percentageDue": 50,
- "isDeposit": false
}
]
}
}, - "previous": {
- "pipelineStage": {
- "title": "New Lead"
}
}, - "reason": "primary pipeline changed",
- "actingUser": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}Project has been moved to a different pipeline.
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "project.pipelineChanged" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "project.pipelineChanged" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "project.pipelineChanged",
- "payload": {
- "project": {
- "id": "xyz",
- "reference": "ABC123",
- "pipeline": {
- "title": "Install"
}, - "pipelineStage": {
- "title": "New Lead"
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}, - "tags": [ ],
- "assignedTo": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}, - "siteAddress": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "notes": [
- "string"
], - "paymentSchedule": {
- "stages": [
- {
- "description": "Deposit payment",
- "percentageDue": 50,
- "isDeposit": true
}, - {
- "description": "Final payment on completion",
- "percentageDue": 50,
- "isDeposit": false
}
]
}
}, - "previous": {
- "pipeline": {
- "title": "Install"
}
}, - "reason": "moved to different pipeline"
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}A new Project has been created.
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "project.created" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "project.created" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "project.created",
- "payload": {
- "project": {
- "id": "xyz",
- "reference": "ABC123",
- "pipeline": {
- "title": "Install"
}, - "pipelineStage": {
- "title": "New Lead"
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}, - "tags": [ ],
- "assignedTo": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}, - "siteAddress": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "notes": [
- "string"
], - "paymentSchedule": {
- "stages": [
- {
- "description": "Deposit payment",
- "percentageDue": 50,
- "isDeposit": true
}, - {
- "description": "Final payment on completion",
- "percentageDue": 50,
- "isDeposit": false
}
]
}
}
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}Creates a new project for the specified customer.
| id required | string Example: xyz |
| reference | string or null |
Structured (object) or String (string) or null | |
| tags | Array of strings or null[ items [ 1 .. 30 ] characters /^((\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud0... ] |
By title (object) or By id (object) or null The pipeline to create the Project within | |
By title (object) or By id (object) or null The stage of the pipeline to start the Project in. If set, | |
object or null The email address of the Payaca user to assign the Project to | |
| notes | Array of strings or null |
object or null Provide values for any custom fieldsets the Account has configured for their Projects. The key should be the custom fieldset identifier | |
object or null |
{- "reference": "ABC123",
- "siteAddress": {
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom"
}, - "tags": [
- "Priority",
- "Install"
], - "pipeline": {
- "title": "Install"
}, - "pipelineStage": {
- "title": "New lead"
}, - "assignTo": {
- "email": "johanna.employeeson@payaca.com"
}, - "notes": [
- "Design and estimate required"
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "finance": {
}
}{- "project": {
- "id": "xyz",
- "reference": "ABC123",
- "pipeline": {
- "title": "Install"
}, - "pipelineStage": {
- "title": "New Lead"
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}, - "tags": [ ],
- "assignedTo": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}, - "siteAddress": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "notes": [
- "string"
], - "paymentSchedule": {
- "stages": [
- {
- "description": "Deposit payment",
- "percentageDue": 50,
- "isDeposit": true
}, - {
- "description": "Final payment on completion",
- "percentageDue": 50,
- "isDeposit": false
}
]
}
}
}Adds Tags to a Project.
| id required | string Example: xyz |
| tagNames required | Array of strings[ items [ 1 .. 30 ] characters /^((\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud0... ] |
{- "tagNames": [
- "New lead",
- "Solar"
]
}{- "project": {
- "id": "xyz",
- "reference": "ABC123",
- "pipeline": {
- "title": "Install"
}, - "pipelineStage": {
- "title": "New Lead"
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}, - "tags": [ ],
- "assignedTo": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}, - "siteAddress": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "notes": [
- "string"
], - "paymentSchedule": {
- "stages": [
- {
- "description": "Deposit payment",
- "percentageDue": 50,
- "isDeposit": true
}, - {
- "description": "Final payment on completion",
- "percentageDue": 50,
- "isDeposit": false
}
]
}
}
}Removes Tags from a Project.
| id required | string Example: xyz |
| tagNames required | Array of strings[ items [ 1 .. 30 ] characters /^((\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud0... ] |
{- "tagNames": [
- "New lead",
- "Solar"
]
}{- "project": {
- "id": "xyz",
- "reference": "ABC123",
- "pipeline": {
- "title": "Install"
}, - "pipelineStage": {
- "title": "New Lead"
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}, - "tags": [ ],
- "assignedTo": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}, - "siteAddress": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "notes": [
- "string"
], - "paymentSchedule": {
- "stages": [
- {
- "description": "Deposit payment",
- "percentageDue": 50,
- "isDeposit": true
}, - {
- "description": "Final payment on completion",
- "percentageDue": 50,
- "isDeposit": false
}
]
}
}
}Updates an existing Project.
| id required | string Example: xyz |
object or null Provide values for any custom fieldsets the Account has configured for their Projects. The key should be the custom fieldset identifier | |
By title (object) or By id (object) or null The stage of the pipeline to start the Project in. If set, |
{- "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "pipelineStage": {
- "title": "New lead"
}
}{- "project": {
- "id": "xyz",
- "reference": "ABC123",
- "pipeline": {
- "title": "Install"
}, - "pipelineStage": {
- "title": "New Lead"
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}, - "tags": [ ],
- "assignedTo": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}, - "siteAddress": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "notes": [
- "string"
], - "paymentSchedule": {
- "stages": [
- {
- "description": "Deposit payment",
- "percentageDue": 50,
- "isDeposit": true
}, - {
- "description": "Final payment on completion",
- "percentageDue": 50,
- "isDeposit": false
}
]
}
}
}Get an existing Project.
| id required | string Example: xyz |
{- "project": {
- "id": "xyz",
- "reference": "ABC123",
- "pipeline": {
- "title": "Install"
}, - "pipelineStage": {
- "title": "New Lead"
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management",
- "contacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful",
- "isPrimaryContact": true
}
], - "addresses": [
- {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
], - "isBillingAddress": true
}
], - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "tags": [ ]
}, - "tags": [ ],
- "assignedTo": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}, - "siteAddress": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customFields": {
- "installationDetails": {
- "installerName": "John Smith",
- "installationDate": "2024-01-15",
- "warrantyYears": 5
}, - "customerPreferences": {
- "contactMethod": "email",
- "newsletterSignup": true
}
}, - "notes": [
- "string"
], - "paymentSchedule": {
- "stages": [
- {
- "description": "Deposit payment",
- "percentageDue": 50,
- "isDeposit": true
}, - {
- "description": "Final payment on completion",
- "percentageDue": 50,
- "isDeposit": false
}
]
}
}
}Get the accepted items and value for an existing Project.
| id required | string Example: xyz |
{- "project": {
- "id": "xyz",
- "acceptedItems": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": 10,
- "description": "Valued customer discount"
}, - "taxRate": {
- "id": "xyz",
- "label": "20% VAT",
- "isReverseCharge": false,
- "percentage": 20
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1
}
], - "acceptedTotals": {
- "total": 12000
}
}
}General purpose webhook endpoint for all Payaca events.
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Enum: "invoice.fullyPaid" "project.created" "project.pipelineChanged" "project.pipelineStageChanged" "proposal.accepted" "proposal.markedAsSent" "proposal.sent" "scheduledEvent.archived" "scheduledEvent.assigned" "scheduledEvent.created" "scheduledEvent.edited" "scheduledEvent.rescheduled" "scheduledEvent.unassigned" |
See docs for each Event for more details
{ }A Scheduled Event has been created.
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "scheduledEvent.created" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "scheduledEvent.created" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "scheduledEvent.created",
- "payload": {
- "scheduledEvent": {
- "id": "xyz",
- "name": "Site visit",
- "description": "Discuss project details",
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "location": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management"
}, - "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "assignees": [
- {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
], - "notes": [
- "string"
], - "tags": [ ],
- "contactsToNotify": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "actingUser": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}A Scheduled Event has been assigned to a User.
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "scheduledEvent.assigned" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "scheduledEvent.assigned" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "scheduledEvent.assigned",
- "payload": {
- "scheduledEvent": {
- "id": "xyz",
- "name": "Site visit",
- "description": "Discuss project details",
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "location": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management"
}, - "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "assignees": [
- {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
], - "notes": [
- "string"
], - "tags": [ ],
- "contactsToNotify": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "assignee": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}, - "actingUser": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}A Scheduled Event has been unassigned from a User.
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "scheduledEvent.unassigned" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "scheduledEvent.unassigned" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "scheduledEvent.unassigned",
- "payload": {
- "scheduledEvent": {
- "id": "xyz",
- "name": "Site visit",
- "description": "Discuss project details",
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "location": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management"
}, - "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "assignees": [
- {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
], - "notes": [
- "string"
], - "tags": [ ],
- "contactsToNotify": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "removedAssignee": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}, - "actingUser": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}A Scheduled Event has been rescheduled (start or end time changed).
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "scheduledEvent.rescheduled" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "scheduledEvent.rescheduled" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "scheduledEvent.rescheduled",
- "payload": {
- "scheduledEvent": {
- "id": "xyz",
- "name": "Site visit",
- "description": "Discuss project details",
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "location": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management"
}, - "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "assignees": [
- {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
], - "notes": [
- "string"
], - "tags": [ ],
- "contactsToNotify": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "previous": {
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z"
}, - "actingUser": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}A Scheduled Event name or description has been changed.
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "scheduledEvent.edited" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "scheduledEvent.edited" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "scheduledEvent.edited",
- "payload": {
- "scheduledEvent": {
- "id": "xyz",
- "name": "Site visit",
- "description": "Discuss project details",
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "location": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management"
}, - "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "assignees": [
- {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
], - "notes": [
- "string"
], - "tags": [ ],
- "contactsToNotify": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "previous": {
- "name": "Site visit",
- "description": "Discuss project details"
}, - "actingUser": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}A Scheduled Event has been archived (soft deleted).
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "scheduledEvent.archived" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "scheduledEvent.archived" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "scheduledEvent.archived",
- "payload": {
- "scheduledEvent": {
- "id": "xyz",
- "name": "Site visit",
- "description": "Discuss project details",
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "location": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management"
}, - "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "assignees": [
- {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
], - "notes": [
- "string"
], - "tags": [ ],
- "contactsToNotify": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "actingUser": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}Adds Tags to a ScheduledEvent.
| id required | string Example: xyz |
| tagNames required | Array of strings[ items [ 1 .. 30 ] characters /^((\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud0... ] |
{- "tagNames": [
- "New lead",
- "Solar"
]
}{- "scheduledEvent": {
- "id": "xyz",
- "name": "Site visit",
- "description": "Discuss project details",
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "location": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management"
}, - "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "assignees": [
- {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
], - "notes": [
- "string"
], - "tags": [ ],
- "contactsToNotify": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}
}Removes Tags from a ScheduledEvent.
| id required | string Example: xyz |
| tagNames required | Array of strings[ items [ 1 .. 30 ] characters /^((\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud0... ] |
{- "tagNames": [
- "New lead",
- "Solar"
]
}{- "scheduledEvent": {
- "id": "xyz",
- "name": "Site visit",
- "description": "Discuss project details",
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "location": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management"
}, - "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "assignees": [
- {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
], - "notes": [
- "string"
], - "tags": [ ],
- "contactsToNotify": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}
}Creates a new scheduled event.
| projectId | string or null |
| name required | string [ 1 .. 255 ] characters |
| description | string or null <= 6000 characters |
| beginAt required | string <date-time> |
| endAt required | string <date-time> |
| tags | Array of strings or null[ items [ 1 .. 30 ] characters /^((\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud0... ] |
Array of objects or null | |
Project site address (object) or Customer address (object) or New address (object) or null | |
Array of Primary Customer contact (object) or Existing contact (object) or New contact (object) or null A list of contacts who will be notified when an event confirmation or event reminder is sent. |
{- "projectId": "ABC123",
- "name": "string",
- "description": "string",
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "tags": [
- "Priority",
- "Install"
], - "assignTo": [
- {
- "email": "johanna.employeeson@payaca.com"
}
], - "location": {
- "type": "project-site-address"
}, - "contactsToNotify": [
- {
- "type": "primary-customer-contact"
}
]
}{- "scheduledEvent": {
- "id": "xyz",
- "name": "Site visit",
- "description": "Discuss project details",
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "location": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management"
}, - "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "assignees": [
- {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
], - "notes": [
- "string"
], - "tags": [ ],
- "contactsToNotify": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}
}Update a scheduled event. Only name, description, beginAt, and endAt fields can be updated.
| id required | string Example: abc123xyz789 The ID of the scheduled event |
| name | string [ 1 .. 255 ] characters |
| description | string or null <= 6000 characters |
| beginAt | string <date-time> |
| endAt | string <date-time> |
{- "name": "string",
- "description": "string",
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z"
}{- "scheduledEvent": {
- "id": "xyz",
- "name": "Site visit",
- "description": "Discuss project details",
- "beginAt": "2019-08-24T14:15:22Z",
- "endAt": "2019-08-24T14:15:22Z",
- "location": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}, - "customer": {
- "id": "xyz",
- "name": "Harper Property Management"
}, - "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "assignees": [
- {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
], - "notes": [
- "string"
], - "tags": [ ],
- "contactsToNotify": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}
}An Invoice has been fully paid.
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "invoice.fullyPaid" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "invoice.fullyPaid" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "invoice.fullyPaid",
- "payload": {
- "invoice": {
- "id": "xyz",
- "reference": "ABC123",
- "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "sentAt": "2019-08-24T14:15:22Z",
- "dueAt": "2019-08-24T14:15:22Z",
- "voidedAt": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "CIS": 2000,
- "total": 10000
}, - "isDepositInvoice": true
}
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}Creates an Invoice against the specified Project.
| id required | string Example: xyz |
| isDepositInvoice | boolean or null Default: false If true, the Invoice will be marked as a deposit Invoice. Only the first Invoice created against a Project can be a deposit Invoice. |
required | Amount (object) or Percentage (object) or Total remaining (object) |
| dueInDays | integer or null > 0 After being sent, the Invoice will be due in this many days. If not provided, will fall back to the account default. |
Send (object) or Mark as sent (object) or Action (null) (Action) Optional action to perform after the Invoice has been created - for example, sending the Invoice to the customer. |
{- "isDepositInvoice": false,
- "invoiceValue": {
- "type": "amount",
- "amount": 12000
}, - "dueInDays": 30,
- "action": {
- "type": "send"
}
}{- "invoice": {
- "id": "xyz",
- "reference": "ABC123",
- "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "sentAt": "2019-08-24T14:15:22Z",
- "dueAt": "2019-08-24T14:15:22Z",
- "voidedAt": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "CIS": 2000,
- "total": 10000
}, - "isDepositInvoice": true
}, - "actionState": {
- "state": "success"
}
}Creates the next Invoice against the specified Project according to the payment schedule.
| id required | string Example: xyz |
| dueInDays | integer or null > 0 After being sent, the Invoice will be due in this many days. If not provided, will fall back to the account default. |
Send (object) or Mark as sent (object) or Action (null) (Action) Optional action to perform after the Invoice has been created - for example, sending the Invoice to the customer. |
{- "dueInDays": 30,
- "action": {
- "type": "send"
}
}{- "invoice": {
- "id": "xyz",
- "reference": "ABC123",
- "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "sentAt": "2019-08-24T14:15:22Z",
- "dueAt": "2019-08-24T14:15:22Z",
- "voidedAt": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "CIS": 2000,
- "total": 10000
}, - "isDepositInvoice": true
}, - "actionState": {
- "state": "success"
}
}A Proposal has been accepted by the Customer, or marked as accepted by a Payaca user.
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "proposal.accepted" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "proposal.accepted" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "proposal.accepted",
- "payload": {
- "proposal": {
- "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "id": "xyz",
- "sentAt": "2019-08-24T14:15:22Z",
- "validUntil": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z",
- "declinedAt": "2019-08-24T14:15:22Z",
- "deactivatedAt": "2019-08-24T14:15:22Z",
- "reference": "ABC123",
- "type": "QUOTE",
- "validForDays": 30,
- "notes": "We provide the best services in the industry, and have been two-time winners of the _best company_ award.",
- "introduction": "Hello **John Doe**, please see the details of your proposal below.",
- "itemGroups": [
- {
- "description": "Group name",
- "items": {
- "required": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": null,
- "description": null
}, - "taxRate": {
- "id": null,
- "label": null,
- "isReverseCharge": null,
- "percentage": null
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1,
- "selection": {
- "type": "OPTIONAL",
- "selected": true
}
}
], - "optional": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": null,
- "description": null
}, - "taxRate": {
- "id": null,
- "label": null,
- "isReverseCharge": null,
- "percentage": null
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1,
- "selection": {
- "type": "OPTIONAL",
- "selected": true
}
}
], - "multiChoice": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": null,
- "description": null
}, - "taxRate": {
- "id": null,
- "label": null,
- "isReverseCharge": null,
- "percentage": null
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1,
- "selection": {
- "type": "OPTIONAL",
- "selected": true
}
}
]
}
}
], - "totals": {
- "total": 12000
}
}
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}A Proposal has been sent to the Customer.
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "proposal.sent" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "proposal.sent" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "proposal.sent",
- "payload": {
- "proposal": {
- "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "id": "xyz",
- "sentAt": "2019-08-24T14:15:22Z",
- "validUntil": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z",
- "declinedAt": "2019-08-24T14:15:22Z",
- "deactivatedAt": "2019-08-24T14:15:22Z",
- "reference": "ABC123",
- "type": "QUOTE",
- "validForDays": 30,
- "notes": "We provide the best services in the industry, and have been two-time winners of the _best company_ award.",
- "introduction": "Hello **John Doe**, please see the details of your proposal below.",
- "itemGroups": [
- {
- "description": "Group name",
- "items": {
- "required": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": null,
- "description": null
}, - "taxRate": {
- "id": null,
- "label": null,
- "isReverseCharge": null,
- "percentage": null
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1,
- "selection": {
- "type": "OPTIONAL",
- "selected": true
}
}
], - "optional": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": null,
- "description": null
}, - "taxRate": {
- "id": null,
- "label": null,
- "isReverseCharge": null,
- "percentage": null
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1,
- "selection": {
- "type": "OPTIONAL",
- "selected": true
}
}
], - "multiChoice": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": null,
- "description": null
}, - "taxRate": {
- "id": null,
- "label": null,
- "isReverseCharge": null,
- "percentage": null
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1,
- "selection": {
- "type": "OPTIONAL",
- "selected": true
}
}
]
}
}
], - "totals": {
- "total": 12000
}
}, - "actingUser": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}A Proposal has been marked as sent.
| x-payaca-signature required | string Signature of the webhook payload |
| x-payaca-event required | string Value: "proposal.markedAsSent" |
| apiVersion required | string |
| occurredAt required | string <date-time> The time the event occurred |
| eventName required | string Value: "proposal.markedAsSent" |
required | object |
| deliveredAt required | string <date-time> The time when the webhook was delivered |
{- "apiVersion": "1.0",
- "occurredAt": "2019-08-24T14:15:22Z",
- "eventName": "proposal.markedAsSent",
- "payload": {
- "proposal": {
- "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "id": "xyz",
- "sentAt": "2019-08-24T14:15:22Z",
- "validUntil": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z",
- "declinedAt": "2019-08-24T14:15:22Z",
- "deactivatedAt": "2019-08-24T14:15:22Z",
- "reference": "ABC123",
- "type": "QUOTE",
- "validForDays": 30,
- "notes": "We provide the best services in the industry, and have been two-time winners of the _best company_ award.",
- "introduction": "Hello **John Doe**, please see the details of your proposal below.",
- "itemGroups": [
- {
- "description": "Group name",
- "items": {
- "required": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": null,
- "description": null
}, - "taxRate": {
- "id": null,
- "label": null,
- "isReverseCharge": null,
- "percentage": null
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1,
- "selection": {
- "type": "OPTIONAL",
- "selected": true
}
}
], - "optional": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": null,
- "description": null
}, - "taxRate": {
- "id": null,
- "label": null,
- "isReverseCharge": null,
- "percentage": null
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1,
- "selection": {
- "type": "OPTIONAL",
- "selected": true
}
}
], - "multiChoice": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": null,
- "description": null
}, - "taxRate": {
- "id": null,
- "label": null,
- "isReverseCharge": null,
- "percentage": null
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1,
- "selection": {
- "type": "OPTIONAL",
- "selected": true
}
}
]
}
}
], - "totals": {
- "total": 12000
}
}, - "actingUser": {
- "fullName": "Johanna Employeeson",
- "email": "johanna.employeeson@payaca.com"
}
}, - "deliveredAt": "2019-08-24T14:15:22Z"
}Creates a Proposal against the specified Project.
| id required | string Example: xyz |
| reference | string or null |
| validForDays | integer or null |
| notes | string or null Additional notes for the proposal. Markdown formatting is supported. |
| introduction | string or null Introduction text for the proposal. Markdown formatting is supported. |
object or null | |
required | Array of objects non-empty |
{- "reference": "ABC123",
- "validForDays": 30,
- "notes": "We provide the best services in the industry, and have been two-time winners of the _best company_ award.",
- "introduction": "Hello **John Doe**, please see the details of your proposal below.",
- "paymentSchedule": {
- "stages": [
- {
- "description": "string",
- "percentageDue": 100,
- "isDeposit": true
}
]
}, - "itemGroups": [
- {
- "description": "Group name",
- "items": {
- "required": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "unitPrice": 1000000,
- "quantity": 1,
- "discount": {
- "percentage": 10,
- "description": "Valued customer discount"
}, - "taxRate": {
- "id": "ABC123"
}
}
], - "optional": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "unitPrice": 1000000,
- "quantity": 1,
- "discount": {
- "percentage": 10,
- "description": "Valued customer discount"
}, - "taxRate": {
- "id": "ABC123"
}, - "selected": true
}
], - "multiChoice": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "unitPrice": 1000000,
- "quantity": 1,
- "discount": {
- "percentage": 10,
- "description": "Valued customer discount"
}, - "taxRate": {
- "id": "ABC123"
}, - "selected": true
}
]
}
}
]
}{- "proposal": {
- "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "id": "xyz",
- "sentAt": "2019-08-24T14:15:22Z",
- "validUntil": "2019-08-24T14:15:22Z",
- "acceptedAt": "2019-08-24T14:15:22Z",
- "declinedAt": "2019-08-24T14:15:22Z",
- "deactivatedAt": "2019-08-24T14:15:22Z",
- "reference": "ABC123",
- "type": "QUOTE",
- "validForDays": 30,
- "notes": "We provide the best services in the industry, and have been two-time winners of the _best company_ award.",
- "introduction": "Hello **John Doe**, please see the details of your proposal below.",
- "itemGroups": [
- {
- "description": "Group name",
- "items": {
- "required": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": 10,
- "description": "Valued customer discount"
}, - "taxRate": {
- "id": "xyz",
- "label": "20% VAT",
- "isReverseCharge": false,
- "percentage": 20
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1,
- "selection": {
- "type": "OPTIONAL",
- "selected": true
}
}
], - "optional": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": 10,
- "description": "Valued customer discount"
}, - "taxRate": {
- "id": "xyz",
- "label": "20% VAT",
- "isReverseCharge": false,
- "percentage": 20
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1,
- "selection": {
- "type": "OPTIONAL",
- "selected": true
}
}
], - "multiChoice": [
- {
- "internalIdentifier": "BATT-ABC",
- "description": "4 KW solar panels 4.5 KW battery",
- "price": {
- "unitPrice": 10000,
- "CISDeductionRate": 20,
- "discount": {
- "percentage": 10,
- "description": "Valued customer discount"
}, - "taxRate": {
- "id": "xyz",
- "label": "20% VAT",
- "isReverseCharge": false,
- "percentage": 20
}
}, - "totals": {
- "subtotal": 10000,
- "tax": 2000,
- "discount": 1000,
- "CIS": 2000,
- "total": 12000
}, - "quantity": 1,
- "selection": {
- "type": "OPTIONAL",
- "selected": true
}
}
]
}
}
], - "totals": {
- "total": 12000
}
}
}Get all custom fieldset definitions for the associated entity type
| assocEntityType required | string Enum: "project" "customer" The type of entity to which custom fieldsets are associated |
{- "customFields": [
- {
- "identifier": "myCustomField",
- "label": "My custom field",
- "description": "Please leave this field blank if you are unsure",
- "exampleValue": true,
- "schema": "{\"type\":[\"boolean\",\"null\"],\"$schema\":\"http://json-schema.org/draft/2020-12/schema\"}",
- "type": "fieldset",
- "children": [
- {
- "identifier": "myCustomField",
- "label": "My custom field",
- "description": "Please leave this field blank if you are unsure",
- "exampleValue": true,
- "schema": "{\"type\":[\"boolean\",\"null\"],\"$schema\":\"http://json-schema.org/draft/2020-12/schema\"}",
- "type": "select",
- "options": [
- "Option 1",
- "Option 2",
- "Option 3"
]
}
]
}
]
}Create for the associated entity type
| assocEntityType required | string Enum: "project" "customer" The type of entity to which custom fieldsets are associated |
| identifier | string or null <= 255 characters ^[a-zA-Z0-9-]+$ A unique identifier for the custom field - this will be auto generated if none provided |
| label required | string <= 1023 characters A readable field label |
| description | string or null <= 1023 characters A description to help users understand the purpose of the field |
| type required | string Value: "fieldset" |
required | Array of Select field (object) or Simple field (object) or Upload field (object) [ 1 .. 100 ] items |
{- "identifier": "myCustomField",
- "label": "My custom field",
- "description": "Please leave this field blank if you are unsure",
- "type": "fieldset",
- "children": [
- {
- "identifier": "myCustomField",
- "label": "My custom field",
- "description": "Please leave this field blank if you are unsure",
- "type": "select",
- "options": [
- "Option 1",
- "Option 2",
- "Option 3"
]
}
]
}{- "customFields": [
- {
- "identifier": "myCustomField",
- "label": "My custom field",
- "description": "Please leave this field blank if you are unsure",
- "exampleValue": true,
- "schema": "{\"type\":[\"boolean\",\"null\"],\"$schema\":\"http://json-schema.org/draft/2020-12/schema\"}",
- "type": "fieldset",
- "children": [
- {
- "identifier": "myCustomField",
- "label": "My custom field",
- "description": "Please leave this field blank if you are unsure",
- "exampleValue": true,
- "schema": "{\"type\":[\"boolean\",\"null\"],\"$schema\":\"http://json-schema.org/draft/2020-12/schema\"}",
- "type": "select",
- "options": [
- "Option 1",
- "Option 2",
- "Option 3"
]
}
]
}
]
}Create within a specific fieldset
| assocEntityType required | string Enum: "project" "customer" The type of entity to which custom fieldsets are associated |
| fieldsetIdentifier required | string |
| identifier | string or null <= 255 characters ^[a-zA-Z0-9-]+$ A unique identifier for the custom field - this will be auto generated if none provided |
| label required | string <= 1023 characters A readable field label |
| description | string or null <= 1023 characters A description to help users understand the purpose of the field |
| type required | string Value: "select" |
| options required | Array of strings [ 1 .. 20 ] items [ items <= 255 characters ] |
{- "identifier": "myCustomField",
- "label": "My custom field",
- "description": "Please leave this field blank if you are unsure",
- "type": "select",
- "options": [
- "Option 1",
- "Option 2",
- "Option 3"
]
}{- "identifier": "myCustomField",
- "label": "My custom field",
- "description": "Please leave this field blank if you are unsure",
- "exampleValue": true,
- "schema": "{\"type\":[\"boolean\",\"null\"],\"$schema\":\"http://json-schema.org/draft/2020-12/schema\"}",
- "type": "fieldset",
- "children": [
- {
- "identifier": "myCustomField",
- "label": "My custom field",
- "description": "Please leave this field blank if you are unsure",
- "exampleValue": true,
- "schema": "{\"type\":[\"boolean\",\"null\"],\"$schema\":\"http://json-schema.org/draft/2020-12/schema\"}",
- "type": "select",
- "options": [
- "Option 1",
- "Option 2",
- "Option 3"
]
}
]
}Create a new Tag
| name required | string [ 1 .. 30 ] characters /^((\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud0... |
{- "name": "string"
}{- "tag": {
- "name": "Solar",
- "isArchived": false
}
}Get all tax rates
| offset | integer or null >= 0 Default: 0 |
| limit | integer ( 0 .. 100 ] Default: 50 |
{- "taxRates": {
- "items": [
- {
- "id": "xyz",
- "label": "20% VAT",
- "isReverseCharge": false,
- "percentage": 20
}
], - "total": 0,
- "offset": 0,
- "limit": 0
}
}Creates a new contact against the address.
| id required | string Example: xyz |
| fullName required | string |
string or null | |
| phoneNumber | string or null |
| description | string or null |
{- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}{- "address": {
- "id": "xyz",
- "line1": "123 Wallaby Street",
- "line2": "string",
- "city": "Bristol",
- "postcode": "BS1 AAA",
- "country": "United Kingdom",
- "regionallyUniqueIdentifier": "1234",
- "accessContacts": [
- {
- "id": "xyz",
- "fullName": "John Doe",
- "email": "john.doe@email.com",
- "phoneNumber": "+44 7777 777777",
- "description": "Very friendly and helpful"
}
]
}
}Get all HTML email templates for the account.
{- "emailTemplates": [
- {
- "id": "abc123xyz789",
- "name": "Invoice Email Template",
- "type": "INVOICE",
- "template": "<html><body>See {{invoice.clientUrl}}</body></html>",
- "createdAt": "2024-01-15T10:30:00Z",
- "updatedAt": "2024-01-15T10:30:00Z"
}
], - "total": 5
}Create a new HTML email template.
| name required | string [ 1 .. 255 ] characters The name of the email template |
| type required | string Enum: "AUTOMATION_TEMPLATE_ESTIMATE" "AUTOMATION_TEMPLATE_EVENT" "AUTOMATION_TEMPLATE_INVOICE" "AUTOMATION_TEMPLATE_PROJECT" "AUTOMATION_TEMPLATE_PROPOSAL" "AUTOMATION_TEMPLATE_QUOTE" "INVOICE" "PROPOSAL" The type of email template |
| template required | string non-empty The HTML template content with variable placeholders |
{- "name": "Invoice Email Template",
- "type": "INVOICE",
- "template": "<html><body>See {{invoice.clientUrl}}</body></html>"
}{- "emailTemplate": {
- "id": "abc123xyz789",
- "name": "Invoice Email Template",
- "type": "INVOICE",
- "template": "<html><body>See {{invoice.clientUrl}}</body></html>",
- "createdAt": "2024-01-15T10:30:00Z",
- "updatedAt": "2024-01-15T10:30:00Z"
}
}Get a single HTML email template by its ID.
| id required | string Example: abc123xyz789 The ID of the email template |
{- "emailTemplate": {
- "id": "abc123xyz789",
- "name": "Invoice Email Template",
- "type": "INVOICE",
- "template": "<html><body>See {{invoice.clientUrl}}</body></html>",
- "createdAt": "2024-01-15T10:30:00Z",
- "updatedAt": "2024-01-15T10:30:00Z"
}
}Update an existing HTML email template.
| id required | string Example: abc123xyz789 The ID of the email template |
| name | string [ 1 .. 255 ] characters The name of the email template |
| template | string non-empty The HTML template content with variable placeholders |
{- "name": "Invoice Email Template",
- "template": "<html><body>See {{invoice.clientUrl}}</body></html>"
}{- "emailTemplate": {
- "id": "abc123xyz789",
- "name": "Invoice Email Template",
- "type": "INVOICE",
- "template": "<html><body>See {{invoice.clientUrl}}</body></html>",
- "createdAt": "2024-01-15T10:30:00Z",
- "updatedAt": "2024-01-15T10:30:00Z"
}
}Delete an HTML email template. Templates that are in use by automations cannot be deleted.
| id required | string Example: abc123xyz789 The ID of the email template |
{- "message": "Something went wrong"
}Adds Tags to a Material.
| id required | string Example: xyz |
| tagNames required | Array of strings[ items [ 1 .. 30 ] characters /^((\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud0... ] |
{- "tagNames": [
- "New lead",
- "Solar"
]
}{- "material": {
- "id": "xyz",
- "name": "Copper pipe",
- "tags": [ ]
}
}Removes Tags from a Material.
| id required | string Example: xyz |
| tagNames required | Array of strings[ items [ 1 .. 30 ] characters /^((\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud0... ] |
{- "tagNames": [
- "New lead",
- "Solar"
]
}{- "material": {
- "id": "xyz",
- "name": "Copper pipe",
- "tags": [ ]
}
}Creates Notes against the specified Project.
| id required | string Example: xyz |
[- "Design and estimate required"
]{- "notes": [
- "string"
]
}Creates a Payment against the specified Project.
| id required | string Example: xyz |
| invoiceId | string or null If an Invoice ID is provided, this payment will preferentially reconcile against the specified invoice. Otherwise, this payment will reconcile against any sent unpaid Invoices on the Project in order of date sent. |
| paymentMethod required | string Enum: "BACS" "FINANCE_PAYOUT" "UNKNOWN" "OTHER" "CASH" "CARD" "CHEQUE" |
| paymentValue required | integer >= 1 Payment value in minor currency units, i.e. pennies |
| receivedAt | string or null <date-time> The date and time when the payment was received. If not provided, will default to the current date and time. |
| sendReceipt | boolean or null Default: false When true, sends a receipt email to the Customer. Defaults to false if not provided. |
{- "invoiceId": "ABC123",
- "paymentMethod": "BACS",
- "paymentValue": 10000,
- "receivedAt": "2023-10-01T12:00:00Z",
- "sendReceipt": true
}{- "payment": {
- "project": {
- "id": "xyz",
- "reference": "ABC123"
}, - "invoice": {
- "id": "xyz",
- "reference": "ABC123"
}, - "value": 10000,
- "method": "BACS",
- "receivedAt": "2023-10-01T12:00:00Z",
- "failedAt": "2023-10-01T12:00:00Z",
- "reconciliation": [
- {
- "invoice": {
- "id": "xyz",
- "reference": "ABC123"
}, - "value": 10000
}
]
}
}