Skip to content
Pitch2SaleDevelopers
Open the app
Early access: these pages are being written and reviewed. Facts in the header boxes come straight from the product.

Create a webhook subscription

POST
/api/v1/webhooks
curl --request POST \
--url https://api.pitch2sale.com/api/v1/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "url": "https://example.com", "events": [ "lead.created" ], "secret": "example", "headers": { "additionalProperty": "example" }, "is_active": true, "description": "example" }'

Subscribes an HTTPS URL to one or more events. Deliveries are signed with HMAC-SHA256 of the body in X-CRM-Signature using secret (stored encrypted, never returned in plain text). Always pass a random secret of at least 16 characters: if omitted, the URL itself becomes the secret.

Media typeapplication/json
object
name
required
string
>= 1 characters <= 200 characters
url
required
string format: uri
events
required
Array<string>
>= 1 items
Allowed values: lead.created lead.updated lead.deleted lead.status_changed contact.created contact.updated contact.deleted opportunity.created opportunity.updated opportunity.won opportunity.lost activity.created task.created task.completed call.completed email.received email.sent sms.received sms.sent form.submitted proposal.sent proposal.accepted proposal.declined contract.signed invoice.created invoice.sent invoice.paid invoice.overdue workflow.triggered
secret
string
>= 16 characters <= 256 characters
headers
object
key
additional properties
string
is_active
boolean
default: true
description
string
<= 1000 characters

The new subscription

Media typeapplication/json
object
webhook
required
object
_id
required
string
url
required
string
events
required
Array<string>
is_active
required
boolean
last_delivery_at
required
string | null
last_delivery_status
required
Any of:
string
Allowed values: pending success failed
failure_count
required
number
created_at
required
string
updated_at
required
string
key
additional properties
any
Example
{
"webhook": {
"last_delivery_status": "pending"
}
}

Validation failed

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Authentication required or token invalid

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Feature not available on the organization plan

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Role permission or token scope missing

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Rate limit exceeded

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}