Carousel Docs

Webhook Guide

This guide explains how to configure and use webhooks to receive real-time updates on application statuses from Carousel.

Creating a Workflow with Data Export

Carousel lets you collect and verify applicant data using a configurable, step-based workflows. You can customize, configure and white label each workflow, directly from the Portal, no code needed.

How to Set It Up

  1. Log in to the Carousel Portal
  2. Navigate to: Dashboard → Workflows → Create New Workflow
  3. Use the drag-and-drop builder to build your flow
  4. Add a Data Export step at the end

Configuring the Data Export Step

The Data Export step automatically sends collected applicant data to your system using a secure POST request.

Setup Instructions

  1. Set Export Destination to Webhook
  2. Enter your POST URL (the endpoint on your system)
  3. Click Confirm to save

Once the applicant reaches this step, Carousel will send the workflow data as structured JSON.


Webhook Events

Carousel will automatically send webhook events to your configured POST URL as the applicant progresses through the workflow.

There are two main events:

1. Application Created

Triggered when an applicant first creates an application (logs in with phone number).

Sample Payload

{
  "loanApplicationId": "28b25f25-43b7-4871-ab47-239faaefbe10",
  "phoneNumber": "+1 (605) 555-5555",
  "createdAt": "2025-08-14T20:52:22.589Z",
  "system": {
    "step": "Loan Product",
    "status": "Initializing",
    "updatedAt": "2025-08-14T20:52:21.233Z"
  },
  "application": {
    "status": "In Progress",
    "updatedAt": "2025-08-14T20:52:21.233Z"
  },
  "updatedAt": "2025-08-14T20:52:22.589Z"
}

2. Application Completed

Triggered when the applicant finishes the entire workflow. This includes all collected data.

Sample Payload

{
	"loanApplicationId": "20ca981e-b94d-426a-a74a-9e17f315c7fc",
	"phoneNumber": "+1 (605) 555-5555",
	"application": {
		"status": "Completed",
		"updatedAt": "2025-08-14T20:52:21.233Z"
	},
	"dataStep": [
		{
			"step": "Loan Product",
			"data": {
				"id": "4361048b-5a52-46e6-ade6-a923ce39bb71",
				"calculatorConfig": {
					"upfrontFee": 0,
					"originationFee": 0,
					"brokerageFeePercent": 0
				},
				"calculatorType": 0,
				"annualInterest": 5,
				"minimumLoanAmount": 500,
				"name": "cll",
				"amount": 500,
				"assignments": [],
				"applicationDate": "2025-02-17T16:08:00.304Z",
				"approvalDate": "2025-02-17T16:10:09.001Z",
				"businessId": "e35cba52-a7f3-53c1-a47c-e539aa26d681",
				"externalCustomerId": null,
				"detailsOnUseOfFunds": null,
				"purposes": ["Inventory"],
				"urgencyOfFunds": null
			}
		},
		{
			"step": "Identity",
			"data": {
				"gender": "Male",
				"dateOfIssue": "2024-10-10T00:00:00.000Z",
				"fullName": "JOHN DOE",
				"country": "CAN",
				"dateOfBirth": "1998-03-08T00:00:00.000Z",
				"dateOfExpiration": "2027-06-30T00:00:00.000Z",
				"documentNumber": "H0653-00009-80308",
				"province": "ON",
				"frontImageUrl": "base64jpeg"
			}
		},
		{
			"step": "Bank Account",
			"data": {
				"loginId": "6433cf6a-0879-4ef0-5a2a-08d91642f9c6",
				"bankAccount": [
					{
						"accountTitle": "Investments",
						"accountNumber": "INV00001",
						"institutionNumber": "",
						"institutionName": "FlinksCapital",
						"transitNumber": "",
						"category": "Products",
						"type": "RRSP",
						"currency": "CAD",
						"balanceAvailable": 0,
						"balanceCurrent": 100000,
						"balanceLimit": 0,
						"overdraftLimit": 0,
						"holder": {
							"fullname": "John Doe",
							"email": "[email protected]",
							"phoneNumber": "(514) 333-7777",
							"address": {
								"address": "1275 avenue des Canadiens-de-Montréal",
								"city": "Montréal",
								"province": "QC",
								"zipCode": "H3B 5E8",
								"country": "CA"
							}
						}
					}
				]
			}
		},
		{
			"step": "Custom Questionnaire",
			"data": {
				"questions": [
					{
						"id": "5bbb1eb4-57c3-4c0c-aa08-b1a4a29eab85",
						"name": "What is the full legal name of your company ?",
						"answer": "Spheregbs"
					},
					{
						"id": "5f3edc6e-6247-47f1-8a15-be6c271b8788",
						"name": "Would you like for the lease to be under your company or personal ?",
						"answer": "Company"
					},
					{
						"id": "2de688e5-3ae1-46bb-b587-669f2168652d",
						"name": "Address from where vehicle will operate?",
						"answer": ""
					}
				]
			}
		}
	],
	"createdAt": "2025-07-22T15:55:23.985Z",
	"updatedAt": "2025-07-22T15:55:23.986Z"
}

Support

Need help with:

  • Configuring workflows
  • Webhook setup
  • Payload troubleshooting
  • POS launch methods

We're here to help: Speak to Support