Service provisioning after proposal completion
Learn how to automate the provisioning of a new customer's service when they complete the proposal.
In this guide, we will walk through how to set up an event webhook that will notify your provisioning system when a proposal is completed and the new subscription is created.
Prerequisites
- A public endpoint must be available for Cacheflow to send the webhook to.
Create an event webhook
- Navigate to the Account Settings page.
- Click on the API tab within the Integrations and Connectors section.
- In the webhooks section, click Create webhook.
- Enter a name and the receiving endpoint URL for Cacheflow to send the webhook to. For this use case, the contract_updated event should be used. Click Submit.
You have now created the event webhook that will notify your provisioning system when a proposal has been completed and the new subscription is created.
Receive the webhook
The webhook will contain information such as the type of event, subscription id, and status.
Example webhook:
{
"id": "2db1305e-5fc3-4d26-a169-d6ad5432cbdd",
"eventType": "contract_updated",
"referenceType": "contract",
"fields": {
"id": "2db1305e-5fc3-4d26-a169-d6ad5432cbdd",
"updatedAt": "2023-03-23T15:11:49.944272861Z",
"name": "Test Contract",
"externalId": "external-5678",
"status": "active"
}
}
Retrieve subscription information
When the webhook is received, the next step is to get the information from Cacheflow that is required to provision the new customer's service. Use the id from the webhook to make a request to the GET /contracts/{id} endpoint in Cacheflow. This will return back the all the customer, subscription, and product information.
Example GET /contracts/{id} call:
GET /api/latest/data/contracts/[id] HTTP/1.1
Host: [yourdomain].api.getcacheflow.com
Authorization: Bearer [Bearer Token]
Response:
{
"id": "2274ed9c-dc18-453c-b953-4d981ce00e38",
"createdBy": "first3last3@test.getcacheflow.com",
"updatedAt": "2023-02-17T14:54:58.988815Z",
"updatedBy": "first3last3@test.getcacheflow.com",
"contractNumber": "236",
"buyer": {
"id": "53eea6ea-997b-43cb-9e17-13e62a901bb0",
"createdAt": "2023-01-17T15:42:55.471759Z",
"createdBy": "api@jimmy.com",
"updatedAt": "2023-02-27T22:57:29.66922Z",
"updatedBy": "bob@jimmy.com",
"name": "Brex Inc.",
"billingAddress": {
"id": "f59e8be6-5518-4f60-8b8f-203cb4fe400f",
"createdAt": "2023-02-27T22:57:29.667018Z",
"createdBy": "bob@jimmy.com",
"updatedAt": "2023-02-27T22:57:29.667021Z",
"streetAddress": "50 W Broadway",
"subAddress": "",
"city": "Boston",
"region": "MA",
"postalCode": "02127",
"country": "United States"
},
"shippingAddress": {
"id": "6736e2b0-79d3-49c9-9ffc-3cc44f27e1a6",
"createdAt": "2023-01-17T15:42:55.470579Z",
"createdBy": "api@jimmy.com",
"updatedAt": "2023-02-27T22:57:29.668287Z",
"updatedBy": "bob@jimmy.com",
"streetAddress": "",
"subAddress": "",
"otherAddress": "",
"city": "",
"region": "",
"postalCode": "",
"country": ""
},
"deleted": false,
"referenceType": "customer",
"syncable": true
},
"startDate": "2022-12-05",
"endDate": "2023-12-04",
"name": "Brex Inc.",
"termType": "month",
"termQty": 12,
"outstandingAmount": 72067857,
"totalAmount": 72067857,
"baseAmount": 72067857,
"proposalNumber": "439",
"status": "active",
"billingPeriod": "year",
"billingMethod": {
"id": "c5ae0f39-5d54-449d-990b-eb7084d0b987",
"createdAt": "2023-02-17T14:48:30.644311Z",
"createdBy": "first3last3@test.getcacheflow.com",
"updatedAt": "2023-02-17T14:48:30.644313Z",
"name": "ach",
"status": "active",
"paymentType": "ach",
"customer": {
"id": "53eea6ea-997b-43cb-9e17-13e62a901bb0",
"createdAt": "2023-01-17T15:42:55.471759Z",
"createdBy": "api@jimmy.com",
"updatedAt": "2023-02-27T22:57:29.66922Z",
"updatedBy": "bob@jimmy.com",
"name": "Brex Inc.",
"billingAddress": {
"id": "f59e8be6-5518-4f60-8b8f-203cb4fe400f",
"createdAt": "2023-02-27T22:57:29.667018Z",
"createdBy": "bob@jimmy.com",
"updatedAt": "2023-02-27T22:57:29.667021Z",
"streetAddress": "50 W Broadway",
"subAddress": "",
"city": "Boston",
"region": "MA",
"postalCode": "02127",
"country": "United States"
},
"shippingAddress": {
"id": "6736e2b0-79d3-49c9-9ffc-3cc44f27e1a6",
"createdAt": "2023-01-17T15:42:55.470579Z",
"createdBy": "api@jimmy.com",
"updatedAt": "2023-02-27T22:57:29.668287Z",
"updatedBy": "bob@jimmy.com",
"streetAddress": "",
"subAddress": "",
"otherAddress": "",
"city": "",
"region": "",
"postalCode": "",
"country": ""
},
"deleted": false,
"referenceType": "customer",
"syncable": true
},
"paymentMethod": {
"id": "a8e368e5-5d55-479e-9cc8-821d91d90058",
"createdAt": "2022-11-23T18:53:06.547738Z",
"createdBy": "jimmy@jimmy.com",
"updatedAt": "2023-01-20T14:16:06.192054Z",
"updatedBy": "bob@jimmy.com",
"name": "ACH",
"description": "Pay via bank",
"enabled": true,
"configured": true,
"managed": false,
"billingPeriods": [
"quarter",
"year",
"month"
],
"paymentType": "ach",
"configuration": {
"accountName": "JCBank",
"bankName": "BankofJC",
"routingNumber": "123456789",
"accountNumber": "123456890123"
},
"processor": "manual"
}
},
"paymentTerm": "upon_receipt",
"contractItems": [
{
"id": "02d0e120-2c14-40e1-8a5e-c4e2e5fe9093",
"createdAt": "2023-02-17T14:54:58.982811Z",
"createdBy": "first3last3@test.getcacheflow.com",
"updatedAt": "2023-02-17T14:54:58.982811Z",
"quantity": 75.0000,
"product": {
"id": "b201149e-6417-491a-a873-2d763b93715c",
"createdAt": "2023-02-17T14:46:30.592739Z",
"createdBy": "bob@jimmy.com",
"updatedAt": "2023-03-16T14:13:16.655444Z",
"updatedBy": "system",
"hidden": false,
"name": "Graduated Platform Fee",
"internalName": "",
"description": "",
"enhanced": true,
"recurrence": "recurring",
"pricing": "graduated",
"consumption": "multiple",
"status": "active",
"unit": {
"id": "b0751c5d-ef5b-4143-b9f5-109e2eb4a23e",
"createdAt": "2022-11-26T18:30:06.803405Z",
"createdBy": "jimmy@jimmy.com",
"updatedAt": "2022-11-26T18:30:06.803408Z",
"name": "Seat",
"plural": "Seats"
},
"unitId": "b0751c5d-ef5b-4143-b9f5-109e2eb4a23e",
"levels": [
{
"start": 0,
"price": {
"amount": 100000,
"scale": 2,
"formattedAmount": "$1,000.00",
"currency": "USD"
},
"quarterPrice": {
"amount": 300000,
"scale": 2,
"formattedAmount": "$3,000.00",
"currency": "USD"
},
"halfyearPrice": {
"amount": 600000,
"scale": 2,
"formattedAmount": "$6,000.00",
"currency": "USD"
},
"yearPrice": {
"amount": 1200000,
"scale": 2,
"formattedAmount": "$12,000.00",
"currency": "USD"
}
},
{
"start": 11,
"price": {
"amount": 95000,
"scale": 2,
"formattedAmount": "$950.00",
"currency": "USD"
},
"quarterPrice": {
"amount": 285000,
"scale": 2,
"formattedAmount": "$2,850.00",
"currency": "USD"
},
"halfyearPrice": {
"amount": 570000,
"scale": 2,
"formattedAmount": "$5,700.00",
"currency": "USD"
},
"yearPrice": {
"amount": 1140000,
"scale": 2,
"formattedAmount": "$11,400.00",
"currency": "USD"
}
},
{
"start": 26,
"price": {
"amount": 90000,
"scale": 2,
"formattedAmount": "$900.00",
"currency": "USD"
},
"quarterPrice": {
"amount": 270000,
"scale": 2,
"formattedAmount": "$2,700.00",
"currency": "USD"
},
"halfyearPrice": {
"amount": 540000,
"scale": 2,
"formattedAmount": "$5,400.00",
"currency": "USD"
},
"yearPrice": {
"amount": 1080000,
"scale": 2,
"formattedAmount": "$10,800.00",
"currency": "USD"
}
},
{
"start": 51,
"price": {
"amount": 85000,
"scale": 2,
"formattedAmount": "$850.00",
"currency": "USD"
},
"quarterPrice": {
"amount": 255000,
"scale": 2,
"formattedAmount": "$2,550.00",
"currency": "USD"
},
"halfyearPrice": {
"amount": 510000,
"scale": 2,
"formattedAmount": "$5,100.00",
"currency": "USD"
},
"yearPrice": {
"amount": 1020000,
"scale": 2,
"formattedAmount": "$10,200.00",
"currency": "USD"
}
},
{
"start": 101,
"price": {
"amount": 80000,
"scale": 2,
"formattedAmount": "$800.00",
"currency": "USD"
},
"quarterPrice": {
"amount": 240000,
"scale": 2,
"formattedAmount": "$2,400.00",
"currency": "USD"
},
"halfyearPrice": {
"amount": 480000,
"scale": 2,
"formattedAmount": "$4,800.00",
"currency": "USD"
},
"yearPrice": {
"amount": 960000,
"scale": 2,
"formattedAmount": "$9,600.00",
"currency": "USD"
}
}
],
"discountable": true,
"options": {
"allowCustomization": true
},
"uri": "/api/latest/settings/products/b201149e-6417-491a-a873-2d763b93715c"
},
"productId": "b201149e-6417-491a-a873-2d763b93715c",
"contractId": "2274ed9c-dc18-453c-b953-4d981ce00e38"
}
],
"billingSchedules": [
{
"id": "20a7fa6c-1914-465f-9a6e-095459239fef",
"createdAt": "2023-02-17T14:48:30.647127Z",
"createdBy": "first3last3@test.getcacheflow.com",
"updatedAt": "2023-02-17T14:48:30.647129Z",
"scheduleDate": "2022-12-05",
"amountDue": 34500000,
"transfer": {
"id": "96a9c59b-f189-4341-9212-01ed18b8ac25",
"createdAt": "2023-02-17T14:51:12.438641Z",
"createdBy": "system@getcacheflow.com",
"updatedAt": "2023-02-17T14:51:12.438642Z",
"amount": 34500000,
"status": "pending",
"type": "DEBIT",
"processor": "manual",
"paymentType": "ach",
"category": "PAYMENT",
"paymentMethod": {
"id": "a8e368e5-5d55-479e-9cc8-821d91d90058",
"createdAt": "2022-11-23T18:53:06.547738Z",
"createdBy": "jimmy@jimmy.com",
"updatedAt": "2023-01-20T14:16:06.192054Z",
"updatedBy": "bob@jimmy.com",
"name": "ACH",
"description": "Pay via bank",
"enabled": true,
"configured": true,
"managed": false,
"billingPeriods": [
"quarter",
"year",
"month"
],
"paymentType": "ach",
"configuration": {
"accountName": "JCBank",
"bankName": "BankofJC",
"routingNumber": "123456789",
"accountNumber": "123456890123"
},
"processor": "manual"
},
"referenceId": "20a7fa6c-1914-465f-9a6e-095459239fef",
"referenceType": "billingschedule"
},
"dueDate": "2022-12-05",
"issueDate": "2022-12-05",
"billingItems": [
{
"id": "db798b94-65de-467e-91a9-7b744d5b929b",
"createdAt": "2023-03-16T14:58:48.078099Z",
"createdBy": "system",
"updatedAt": "2023-03-16T14:58:48.0781Z",
"billingType": "product",
"amountDue": 34500000,
"quantity": 30.0000,
"product": {
"referenceType": "product",
"id": "b201149e-6417-491a-a873-2d763b93715c",
"uri": "/api/latest/settings/products/b201149e-6417-491a-a873-2d763b93715c"
}
}
],
"parentReferenceKey": {
"referenceType": "contract",
"referenceId": "2274ed9c-dc18-453c-b953-4d981ce00e38"
},
"referenceType": "billingschedule"
},
{
"id": "787e08b1-1188-42e4-86fe-b0b049f41385",
"createdBy": "first3last3@test.getcacheflow.com",
"updatedAt": "2023-02-17T14:49:22.699773Z",
"updatedBy": "first3last3@test.getcacheflow.com",
"scheduleDate": "2023-02-05",
"amountDue": 35000000,
"transfer": {
"id": "de37f08c-431e-4e0b-9e61-ed6f385080bd",
"createdAt": "2023-02-17T14:51:12.441033Z",
"createdBy": "system@getcacheflow.com",
"updatedAt": "2023-03-16T15:09:53.164159Z",
"updatedBy": "system@getcacheflow.com",
"amount": 33484932,
"status": "pending",
"type": "DEBIT",
"processor": "manual",
"paymentType": "ach",
"category": "PAYMENT",
"paymentMethod": {
"id": "a8e368e5-5d55-479e-9cc8-821d91d90058",
"createdAt": "2022-11-23T18:53:06.547738Z",
"createdBy": "jimmy@jimmy.com",
"updatedAt": "2023-01-20T14:16:06.192054Z",
"updatedBy": "bob@jimmy.com",
"name": "ACH",
"description": "Pay via bank",
"enabled": true,
"configured": true,
"managed": false,
"billingPeriods": [
"quarter",
"year",
"month"
],
"paymentType": "ach",
"configuration": {
"accountName": "JCBank",
"bankName": "BankofJC",
"routingNumber": "123456789",
"accountNumber": "123456890123"
},
"processor": "manual"
},
"referenceId": "787e08b1-1188-42e4-86fe-b0b049f41385",
"referenceType": "billingschedule"
},
"dueDate": "2023-02-05",
"issueDate": "2023-02-05",
"billingItems": [
{
"id": "577470d0-ceeb-4eb0-8633-fa7bdef834d0",
"createdAt": "2023-03-16T14:58:48.080054Z",
"createdBy": "system",
"updatedAt": "2023-03-16T14:58:48.080055Z",
"billingType": "product",
"amountDue": -27505479,
"quantity": 30.0000,
"proration": -79,
"product": {
"referenceType": "product",
"id": "b201149e-6417-491a-a873-2d763b93715c",
"uri": "/api/latest/settings/products/b201149e-6417-491a-a873-2d763b93715c"
}
},
{
"id": "2d27b4bd-4b0d-4eb6-9c3d-0d8981d701a9",
"createdAt": "2023-03-16T14:58:48.080531Z",
"createdBy": "system",
"updatedAt": "2023-03-16T14:58:48.080532Z",
"billingType": "product",
"amountDue": 60990411,
"quantity": 70.0000,
"proration": 79,
"product": {
"referenceType": "product",
"id": "b201149e-6417-491a-a873-2d763b93715c",
"uri": "/api/latest/settings/products/b201149e-6417-491a-a873-2d763b93715c"
}
}
],
"parentReferenceKey": {
"referenceType": "contract",
"referenceId": "2274ed9c-dc18-453c-b953-4d981ce00e38"
},
"referenceType": "billingschedule"
},
{
"id": "44b12776-2878-4823-ac64-2dc2b90709d8",
"createdBy": "first3last3@test.getcacheflow.com",
"updatedAt": "2023-02-17T14:54:58.989191Z",
"updatedBy": "first3last3@test.getcacheflow.com",
"scheduleDate": "2023-02-17",
"amountDue": 4067857,
"transfer": {
"id": "cc95507a-c026-47fa-aa41-4f0ed94d93f6",
"createdAt": "2023-02-17T14:56:13.726351Z",
"createdBy": "system@getcacheflow.com",
"updatedAt": "2023-03-16T15:09:53.164714Z",
"updatedBy": "system@getcacheflow.com",
"amount": 4066027,
"status": "pending",
"type": "DEBIT",
"processor": "manual",
"paymentType": "ach",
"category": "PAYMENT",
"paymentMethod": {
"id": "a8e368e5-5d55-479e-9cc8-821d91d90058",
"createdAt": "2022-11-23T18:53:06.547738Z",
"createdBy": "jimmy@jimmy.com",
"updatedAt": "2023-01-20T14:16:06.192054Z",
"updatedBy": "bob@jimmy.com",
"name": "ACH",
"description": "Pay via bank",
"enabled": true,
"configured": true,
"managed": false,
"billingPeriods": [
"quarter",
"year",
"month"
],
"paymentType": "ach",
"configuration": {
"accountName": "JCBank",
"bankName": "BankofJC",
"routingNumber": "123456789",
"accountNumber": "123456890123"
},
"processor": "manual"
},
"referenceId": "44b12776-2878-4823-ac64-2dc2b90709d8",
"referenceType": "billingschedule"
},
"dueDate": "2023-02-17",
"issueDate": "2023-02-17",
"statementSentAt": "2023-02-17",
"billingItems": [
{
"id": "835f9f61-2507-4db9-b703-656b10de08cd",
"createdAt": "2023-03-16T14:58:48.082401Z",
"createdBy": "system",
"updatedAt": "2023-03-16T14:58:48.082402Z",
"billingType": "product",
"amountDue": -60990411,
"quantity": 70.0000,
"proration": -79,
"product": {
"referenceType": "product",
"id": "b201149e-6417-491a-a873-2d763b93715c",
"uri": "/api/latest/settings/products/b201149e-6417-491a-a873-2d763b93715c"
}
},
{
"id": "fa7262b7-10bc-452c-b6bf-516580886b20",
"createdAt": "2023-03-16T14:58:48.08434Z",
"createdBy": "system",
"updatedAt": "2023-03-16T14:58:48.084341Z",
"billingType": "product",
"amountDue": 65056438,
"quantity": 75.0000,
"proration": 79,
"product": {
"referenceType": "product",
"id": "b201149e-6417-491a-a873-2d763b93715c",
"uri": "/api/latest/settings/products/b201149e-6417-491a-a873-2d763b93715c"
}
}
],
"parentReferenceKey": {
"referenceType": "contract",
"referenceId": "2274ed9c-dc18-453c-b953-4d981ce00e38"
},
"referenceType": "billingschedule"
}
],
"currencyCode": "USD",
"timeunitType": "month",
"shortId": "236",
"nextPaymentDue": {
"id": "20a7fa6c-1914-465f-9a6e-095459239fef",
"createdAt": "2023-02-17T14:48:30.647127Z",
"createdBy": "first3last3@test.getcacheflow.com",
"updatedAt": "2023-02-17T14:48:30.647129Z",
"scheduleDate": "2022-12-05",
"amountDue": 34500000,
"transfer": {
"id": "96a9c59b-f189-4341-9212-01ed18b8ac25",
"createdAt": "2023-02-17T14:51:12.438641Z",
"createdBy": "system@getcacheflow.com",
"updatedAt": "2023-02-17T14:51:12.438642Z",
"amount": 34500000,
"status": "pending",
"type": "DEBIT",
"processor": "manual",
"paymentType": "ach",
"category": "PAYMENT",
"paymentMethod": {
"id": "a8e368e5-5d55-479e-9cc8-821d91d90058",
"createdAt": "2022-11-23T18:53:06.547738Z",
"createdBy": "jimmy@jimmy.com",
"updatedAt": "2023-01-20T14:16:06.192054Z",
"updatedBy": "bob@jimmy.com",
"name": "ACH",
"description": "Pay via bank",
"enabled": true,
"configured": true,
"managed": false,
"billingPeriods": [
"quarter",
"year",
"month"
],
"paymentType": "ach",
"configuration": {
"accountName": "JCBank",
"bankName": "BankofJC",
"routingNumber": "123456789",
"accountNumber": "123456890123"
},
"processor": "manual"
},
"referenceId": "20a7fa6c-1914-465f-9a6e-095459239fef",
"referenceType": "billingschedule"
},
"dueDate": "2022-12-05",
"issueDate": "2022-12-05",
"billingItems": [
{
"id": "db798b94-65de-467e-91a9-7b744d5b929b",
"createdAt": "2023-03-16T14:58:48.078099Z",
"createdBy": "system",
"updatedAt": "2023-03-16T14:58:48.0781Z",
"billingType": "product",
"amountDue": 34500000,
"quantity": 30.0000,
"product": {
"referenceType": "product",
"id": "b201149e-6417-491a-a873-2d763b93715c",
"uri": "/api/latest/settings/products/b201149e-6417-491a-a873-2d763b93715c"
}
}
],
"parentReferenceKey": {
"referenceType": "contract",
"referenceId": "2274ed9c-dc18-453c-b953-4d981ce00e38"
},
"referenceType": "billingschedule"
}
}
Updated almost 2 years ago