Carousel resources

How can we help?

Popular: Create a workflow · Webhook guide · The verification fee

New to Carousel? The guided tour is the fastest way to get oriented.
Still stuck?

Write to us — a real person replies within a day, usually sooner.

Contact us
Product guides · For your team

Run it from the Portal.

Eleven guides, in order — from your first look at the workspace to adding your team.

A quick guided tour — the fastest way to get oriented.
Carousel Portal — the guides, in order
Developer guides

Integrate Carousel.

Integrate workflows into your product: links and embeds for applicants in, webhooks for data out, and the full API reference.

Getting started · For everyone

Start here.

New to Carousel? Two short reads cover the basics. Then follow the path for your role — reviewing applications, applying, or integrating.

Getting started

Workflow steps & providers

Every step a workflow can include — and the provider behind each one — in one view.

Mix any of these steps into a single flow. Each is verified at the source and billed only when an applicant completes it.

StepProviderWhat it returns
Identity verificationOnfido / OndatoMatch a government ID to a live selfie.
Financial verificationPlaid / FlinksBank-linked income and cash flow.
Credit checkTransUnion / EquifaxA bureau pull with consent captured in flow.
Background checkFastkey / CheckrCriminal record screening.
Court & eviction checksOpenRoom / SOQUIJ / TALCivil filings and tenancy records.
Document signaturePandaDocE-signature on any document.
Applicant requestCarouselAsk for a file or an answer.
Applicant paymentStripeCollect a fee mid-flow.
Know Your BusinessCarouselEntity, ownership, and standing.
Alternative credit bureauCarouselThin-file and newcomer coverage.
Fraud, AML & complianceSanction ScannerSanctions, PEP, and watchlist screening.
Custom questionnaireCarouselYour own questions, conditionally routed.
Self-declarationCarouselAttestations with an audit trail.
Workflow steps

Identity verification

Match a government ID to a live selfie, and read the fields off the document.

How it works

  1. The applicant photographs the front and back of a government-issued ID.
  2. A liveness selfie is captured and matched against the document portrait.
  3. Fields are extracted and returned as structured data.

What it returns

  • Full name, date of birth, gender
  • Document number, type, and issuing province or country
  • Date of issue and expiry
  • Front and back images, stored as signed URLs

At a glance

Provider
Onfido / Ondato
Billing
Per completed step

Most other steps can require identity verification first, so the result is tied to a verified person rather than a typed-in name.

Billing

This is a billable step, charged only when the applicant completes it. See Pricing and usage.

Workflow steps

Financial verification

Bank-linked account ownership, balances, and enriched income insight.

How it works

  1. The applicant logs into their bank in a secure window.
  2. Accounts are confirmed and transaction history is retrieved.
  3. Income and cash-flow insights are generated from the raw transactions.

What it returns

  • Account ownership and institution
  • Balances and account numbers (masked)
  • Income estimates and transaction categories
  • Rule-engine outcomes where configured

At a glance

Provider
Plaid / Flinks
Billing
Per completed step

Credentials are never seen or stored by Carousel or by your business. Where a bank is unsupported, a document-upload fallback can be enabled.

Billing

This is a billable step, charged only when the applicant completes it. See Pricing and usage.

Workflow steps

Credit check

A bureau pull with consent captured inside the flow.

How it works

  1. Consent language is presented and accepted as part of the step.
  2. The bureau is queried against the verified identity.
  3. The report is attached to the application.

What it returns

  • Score and score factors
  • Tradelines and balances
  • Inquiries and public records

At a glance

Provider
TransUnion / Equifax · Experian coming soon
Billing
Per completed step
Requires first
Identity verification

This step normally requires identity verification first. Soft or hard pull depends on your bureau agreement.

Billing

This is a billable step, charged only when the applicant completes it. See Pricing and usage.

Workflow steps

Background check

Criminal record screening tied to a verified identity.

How it works

  1. The verified name and date of birth are submitted for search.
  2. Jurisdictional sources are queried.
  3. Findings are returned with source and date.

What it returns

  • Matches with offence, jurisdiction, and date
  • A clear result where nothing is found

At a glance

Provider
Fastkey / Checkr
Billing
Per completed step
Requires first
Identity verification

Turnaround is usually seconds but can take minutes where a manual court search is required.

Billing

This is a billable step, charged only when the applicant completes it. See Pricing and usage.

Workflow steps

Document signature

Send a document for e-signature without leaving the flow.

How it works

  1. Upload or select the document template in the Portal.
  2. The applicant reviews and signs on their phone.
  3. The executed copy is stored with the application.

What it returns

  • The signed PDF
  • Signer identity, timestamp, and IP
  • Audit trail of views and actions

At a glance

Provider
PandaDoc
Billing
Per completed step

Signed documents are included in the PDF export of the application.

Billing

This is a billable step, charged only when the applicant completes it. See Pricing and usage.

Workflow steps

Applicant request

Ask for anything the other steps do not cover.

How it works

  1. Configure what you are asking for and whether it is required.
  2. The applicant uploads a file or types an answer in the flow.

What it returns

  • Uploaded files, stored as signed URLs
  • Typed answers as structured fields

At a glance

Provider
Carousel
Billing
Per completed step

Useful for a void cheque, a letter of employment, or a photo of an asset.

Billing

This is a billable step, charged only when the applicant completes it. See Pricing and usage.

Workflow steps

Applicant payment

Collect a fee mid-flow — including the verification fee that starts an applicant-paid workflow.

How it works

  1. The amount is configured on the step.
  2. The applicant pays by card in the flow.
  3. The receipt is attached to the application.

What it returns

  • Payment status and amount
  • Stripe payment reference
  • Receipt for the applicant

At a glance

Provider
Stripe
Billing
Per completed step

In an applicant-paid workflow this step prepays every verification in the flow. Refunds are handled per Request a refund.

Billing

This is a billable step, charged only when the applicant completes it. See Pricing and usage.

Workflow steps

Know Your Business

Verify a business’s identity, ownership, and registration — KYB alongside KYC.

How it works

  1. The applicant enters the legal entity details.
  2. Registries are queried for standing and ownership.
  3. Beneficial owners can be pushed through identity verification.

What it returns

  • Legal name, number, and jurisdiction
  • Registration status and incorporation date
  • Directors and beneficial owners

At a glance

Provider
Carousel
Billing
Per completed step

Pair with identity verification on the signing officer for a complete file.

Billing

This is a billable step, charged only when the applicant completes it. See Pricing and usage.

Workflow steps

Alternative credit bureau

Coverage for thin-file applicants and newcomers.

How it works

  1. Alternative data sources are queried where bureau history is limited.
  2. A usable creditworthiness picture is assembled from what exists.

What it returns

  • Alternative score or risk band
  • Contributing data sources

At a glance

Provider
Carousel
Billing
Per completed step

Most useful for newcomers, students, and applicants without a Canadian bureau history.

Billing

This is a billable step, charged only when the applicant completes it. See Pricing and usage.

Workflow steps

Fraud, AML & compliance

Sanctions, PEP, and watchlist screening on a verified identity.

How it works

  1. The verified identity is screened against sanctions and AML watchlists.
  2. Any hits are returned with the list and match confidence.

What it returns

  • Watchlist matches with source and confidence
  • PEP status
  • A clear result where nothing is found

At a glance

Provider
Sanction Scanner
Billing
Per completed step
Requires first
Identity verification

The result and its timestamp are recorded for audit.

Billing

This is a billable step, charged only when the applicant completes it. See Pricing and usage.

Workflow steps

Custom questionnaire

Your own questions, conditionally routed, returned as structured fields.

How it works

  1. Build the question set in the Portal.
  2. Add conditions so later questions depend on earlier answers.
  3. Answers arrive as fields on the application.

What it returns

  • Question id, text, and answer for every question
  • Branch taken, where conditions applied

At a glance

Provider
Carousel built-in
Billing
Per completed step

Answers appear in the webhook payload under the Custom Questionnaire step.

Billing

This is a billable step, charged only when the applicant completes it. See Pricing and usage.

Workflow steps

Self-declaration

Attestations with an audit trail.

How it works

  1. Define the statement the applicant must attest to.
  2. The applicant accepts it in the flow.

What it returns

  • The statement text as presented
  • Acceptance, timestamp, and IP

At a glance

Provider
Carousel
Billing
Per completed step

Use where a formal signature is unnecessary but a record is required.

Billing

This is a billable step, charged only when the applicant completes it. See Pricing and usage.

Product guides · For your team

Parts of your workspace

The icon rail, search, filters — and the three areas you will use most.

The icon rail, search, filters, and the shared queue.
Carousel PortalWorkflows — view, create, share, preview, and disable every flow.

Three areas

  1. Workflows — build, preview, share, and disable every flow.
  2. Applications — the shared queue of everything applicants have submitted.
  3. Settings — branding, team access, and integrations.

Getting around

  • The icon rail on the left switches areas.
  • Search finds an applicant by name, phone, or application ID.
  • Filters narrow the queue by workflow, stage, status, or assignee.
Product guides · For your team

Create a workflow

From Workflows, click Create New Workflow and assemble the steps your application needs — no code required.

The drag-and-drop workflow builder — Available Tools on the left, your flow on the right.
Carousel PortalThe drag-and-drop workflow builder — Available Tools on the left, your flow on the right.

Build it in the Portal

  1. Log in to the Carousel Portal.
  2. Navigate to Dashboard → Workflows → Create New Workflow.
  3. Use the drag-and-drop builder to assemble your flow from the available steps.
  4. Customize and white-label the workflow — branding, copy, and step order.

Choose what each step requires

Every step can be marked as requiring manual approval before the flow continues, or left to complete automatically. Some steps have prerequisites — a credit check, for example, requires identity verification first.

Decide who pays

A workflow is either business-paid, where you cover the verification costs, or applicant-paid, where the applicant prepays and owns their verified profile. See Pricing and usage.

Save and it is live

Every workflow gets a unique URL the moment you save it — see Share a workflow.

What you can include

A workflow is assembled from the steps below. Mix and match whatever your application needs — each step links to more detail.

StepWhat it does
Applicant requestCollects key details about the applicant’s request, such as loan amount, purpose, and requested terms.
Applicant paymentCollects the verification fee from the applicant to initiate the workflow and cover the cost of running verification services.
Identity verificationVerifies the applicant’s identity using government-issued ID and biometric or document checks to prevent fraud.
Know Your Business (KYB)Verifies a business’s identity, ownership, and registration details to confirm it is legitimate and authorized to transact.
Financial verificationConnects to the applicant’s bank account to retrieve income, cash flow, and transaction data for affordability assessment.
Credit checkRetrieves credit bureau data to assess creditworthiness. Requires identity verification first.
Background checkScreens criminal history and risk indicators against the verified identity.
Court & eviction checksSurfaces court filings, disputes, and tenancy history from available databases.
Fraud, AML & complianceScreens the applicant against sanctions and AML watchlists.
E-signatureSends a document for signature and tracks it to completion.
Custom questionnaireGathers additional applicant information through dynamic, conditional forms.
Self-declarationCaptures applicant-provided disclosures — income, employment, and living situation.
Alternative credit bureauAssesses creditworthiness for thin-file applicants and newcomers.

Send the results onward

Add a CRM Integration step at the end to post the finished file to your own system as JSON. See the Webhook guide.

Product guides · For your team

See all your workflows

View, create, preview, share, and disable every workflow from one place.

Workflows list with share and preview actions
Carousel PortalWorkflows — view, create, share, preview, and disable every flow.

The Workflows list shows each flow you have built, whether it is active, and how many applications it has produced.

What you can do from the list

  • Preview — walk through the flow exactly as an applicant would.
  • Share — copy the link or grab the embed code.
  • Duplicate — spin up a variant without rebuilding it.
  • Disable — stop accepting new applications without deleting history.
Editing a live workflow

Edits apply to new applications. Applications already in flight keep the version they started on.

Product guides · For your team

Share a workflow

A general link, a personal share link, or an embed — plus the default language.

Share dialog — General link, My share link, Tenancy link, default language
Carousel PortalThe share dialog — general link, personal share link, tenancy link, and default language.

Three ways to share

  1. General link — one URL for everyone; best for a website button or campaign.
  2. Share link — attributed to a specific team member, so submissions arrive assigned.
  3. Embed — the flow inside a page on your own site.

Direct links are recommended over embedding. See Direct link or embed for the tradeoffs and code.

Language

Each workflow has a default language (EN or FR). Applicants can switch, but the link opens in the default you set.

Product guides · For your team

See your submissions

Manage All Applications: your team’s shared queue, with search, filters, and columns.

Manage All Applications — every submission across every workflow.
Carousel PortalManage All Applications — every submission across every workflow.

Applications lists every submission across every workflow, newest first.

Columns

  • Name and phone number of the applicant.
  • Stage — the step-by-step progress icons.
  • Assignee — who owns the file.
  • Lead origin — which link or workflow it came from.
  • Last updated and Status.

Finding a file

Search by name, phone, or application ID; filter by workflow, stage, status, or assignee. See Stages & statuses for how to read each row.

Product guides · For your team

Stages & statuses

How to read the status pill and the step-by-step stage icons on every row.

Statuses

  • In progress — the applicant has started but not finished.
  • Completed — every required step is done; the file is ready to review.
  • Processing — a provider is still returning a result.
  • Timed out — a step took too long and can be reprocessed.
  • Cancelled — the application was abandoned or withdrawn.

Stage icons

Each row shows one icon per step in the workflow, in order. A filled icon means the step completed; an outlined icon means it has not run yet.

Reprocess

A timed-out step can be re-run from the row’s Related actions without asking the applicant to start over.

Product guides · For your team

Review a submission

Read a finished file — every step result with its documents attached, on one page.

A submission in review — every step, verification output, and document in one place.
Carousel PortalA submission in review — every step, verification output, and document in one place.

Open any submission to see each step’s result in the order the applicant completed it, with the underlying documents attached. There are no tabs to reconcile and nothing to download separately.

What a reviewer sees

  • Verified identity fields, with the ID images.
  • Bank-linked income and transaction insight.
  • Credit, background, and court results where configured.
  • Signed documents and questionnaire answers.

Acting on it

Approve, decline, or request more information. Where a step needed manual approval, the decision is recorded against that step. Export the file with Export as PDF.

Product guides · For your team

Export as PDF

Hand a complete, verified file to anyone who needs it.

Application menu with Export as PDF
Carousel PortalThe application ⋮ menu — Export as PDF sits here.

Any completed submission exports as a single PDF containing every verified result and document, suitable for a credit file, an investor, or an audit.

What the export includes

  • A cover summary of the applicant and workflow.
  • Each step’s result in order, with timestamps.
  • Attached documents and signatures.
Partial files

A submission still in progress can be exported, but the PDF is marked incomplete and lists which steps are outstanding.

Product guides · For your team

Add your team

Seats, roles, and access — enforced per workspace.

Invite someone

  1. Open Settings → Team.
  2. Click Add Team Member and enter their work email.
  3. Assign a role, then send the invite.

Roles

  • Admin — full access, including billing and integrations.
  • Reviewer — sees the queue and reviews submissions.
  • Builder — creates and edits workflows.

Access is enforced per workspace with role-based access control and token-based authentication. See the Developer FAQ for the security detail.

Product guides · For your team

Product guides FAQ

Common questions from teams running Carousel.

Workflows

Can I change a workflow after it is live? Yes. Edits apply to new applications; in-flight ones keep the version they started.

Can I preview a flow before sharing it? Yes — preview walks through it exactly as an applicant would see it.

Access

Can two teams share a workspace? Yes, with roles scoped per member.

Can I restrict who sees submissions? Yes — reviewers only see the queue, not billing or integrations.

Branding

Can I white-label the flow? Yes — your logo and brand colours on the applicant experience.

Product guides · For applicants

Why verify?

Why the information is being requested — and what happens to it.

Verifying at the source means you do not have to gather statements, scan documents, or email anything. It also means the business can decide faster, because nothing has to be checked by hand afterwards.

What is shared

  • Only the results the business asked for — not your banking credentials.
  • Documents you upload, and the fields read from your ID.
  • Nothing else from your accounts.
Your data

Documents are encrypted in transit and at rest. You can request deletion at any time.

Product guides · For applicants

Complete an application

Finish in one sitting, on your phone.

Step by step

  1. Open the link on your phone.
  2. Enter your phone number to start or resume.
  3. Complete each step — the flow tells you exactly what it needs.
  4. Review and submit.

If something goes wrong

  • ID photo rejected — retake it in even light, no glare, all four corners visible.
  • Bank not listed — upload statements instead where the business allows it.
  • Interrupted — reopen the same link; your progress is saved.
Product guides · For applicants

After you submit

What happens to your file next.

Your completed file goes to the business that requested it. If a step is still processing, it finishes on its own — you do not need to do anything else.

Timing

  • Most steps return in seconds.
  • Credit and record checks can take a few minutes.
  • The business decides on its own timeline; Carousel does not make the decision.
Product guides · For applicants

Sharing & progress

Your verified profile is yours to share.

In an applicant-paid workflow you prepay for the verifications, own the resulting profile, and choose who sees it.

What you control

  • Share the profile with the business that asked, or with another one.
  • Track progress of each step as it completes.
  • Request a refund if there are issues — see Request a refund.
Developer guides · For developers

Integrate Carousel.

The fastest way to collect verified data from applicants — think Stripe Checkout, but for onboarding. You build the workflow; Carousel turns it into a full-page experience applicants actually complete.

How it works

1

Build a workflow in the Carousel Portal

Drag-and-drop builder, no code needed. Customize, configure, and white-label every step.

2

Get an instant, shareable link

Every workflow gets a unique URL the moment you create it.

3

Applicants complete the flow on that link

A guided, mobile-optimized, full-page experience — on any device.

4

Data is routed

Results appear in the Carousel Portal for review — and can be sent instantly to your backend via webhook in JSON format.

One point of access

  • Seamless integration: Plug into Carousel once and unlock our entire ecosystem of data collection, verification, and compliance tools.
  • All-in-one workflows: From KYC to banking data, credit checks, and e-signatures — everything flows through a single, unified platform.
  • Automation-ready: Use rule-based routing, webhooks, and advanced logic to streamline every decision.
  • Analytics built-in: Get real-time insights and reporting across all your applicants, without extra setup.
  • Go live fast: From concept to working flow in minutes.
  • Quick to implement: Clear APIs and instant webhooks make integration straightforward.
  • Bank-grade security: End-to-end encryption, audit logs, and strict data handling.
  • Scalable: Built to handle thousands of concurrent applicants.
  • Developer choice: Use the Portal for rapid setup or wire everything directly into your own stack.

The guides

External

API reference

The full interactive API reference — endpoints, schemas, and try-it-out requests.

Open ↗
Developer guides · For developers

Webhook guide

How to configure and use webhooks to receive real-time updates on application statuses — events, payloads, file handling, and retries.

Carousel Portal — New Workflow with Financial Verification and CRM Integration steps selected
Carousel PortalA workflow with a CRM Integration step added at the end.

Creating a Workflow with CRM Integration

Carousel lets you collect and verify applicant data using 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 CRM Integration step at the end

Configuring the CRM Integration Step

The CRM Integration 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 three 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",
	"apiUrl": "https://yourwebhook.com",
  "createdAt": "2025-08-14T20:52:22.589Z",
	"externalCustomerId":"your_customer_id",
  "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 Finished All Steps

Triggered when the applicant finishes all required steps.

{
	"loanApplicationId": "20ca981e-b94d-426a-a74a-9e17f315c7fc",
  "phoneNumber": "+1 (605) 555-5555",
	"apiUrl": "https://yourwebhook.com",
  "createdAt": "2025-08-14T20:52:22.589Z",
  "externalCustomerId":"your_customer_id",
	"system": {
    "step": "Loan Product",
    "status": "Initializing",
    "updatedAt": "2025-08-14T20:52:21.233Z"
  },
	"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": "https://staging.api.oncarousel.com/uploads/kyc/330b8683-1428-4f94-a558-3c9c2db0dec4.jpeg?Expires=1767726190&Key-Pair-Id=K1G5A68240S8O&Signature=HWka0sGDCY96n0DsQaw37PEqghDXR4TkR0sESFEPL5Uw9iF3UTunI2KVLsVOgjg0PkSpr3dYLoBx9O4rBiJUE9XIqhpJk1b4CcPuETT1SMMyF89M82F1TPlx7gyBlBtF3N5eilvK1EnWJc8CPL4Q~-Z64CLOU6HMmFEg1KpZ2yauGH3OWwMXVXWFjOk2JLzZv1JRYFGqYVTWtxOswgZhFf8tiZPLHfHElHAI1E6huPQ9s5JCFO3LeOU2MjWkjz3Mr2yL7RtLKjjOrlW5HAEvXJ-BgOR7HBSL9XntY7VWxCBSxJZ3A~mex3t4tif7aZY079dWpOVmxYwTPZ9OgBmVDw__"
			}
		},
		{
			"step": "Bank Account",
			"data": {
				"loginId": "6433cf6a-0879-4ef0-5a2a-08d91642f9c6",
				"bankAccount": [] // This step is still processing so no bank accounts were saved 
			}
		},
		{
			"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": ""
					}
				]
			}
		}
	],
	"updatedAt": "2025-07-22T15:55:23.986Z"
}

3. Full Payload — Every Step

A complete example with every step type present, including financial accounts, questionnaire answers, e-signature, credit, background, court and self-declaration data.

{
  "loanApplicationId": "dc8ef61b-35a2-4634-88d8-38e637abb2c4",
  "phoneNumber": "+1 (500) 555-0006",
  "apiUrl": "https://webhook.site/e9cb118c-fcf8-4314-99d0-2ca03d18a8bb",
  "createdAt": "2026-04-10T16:30:32.649Z",
  "externalCustomerId": "",
  "system": {
    "status": [
      {
        "step": "Loan Request",
        "statuses": [
          "Approved"
        ]
      },
      {
        "step": "Applicant Payment",
        "statuses": [
          "Approved"
        ]
      },
      {
        "step": "Financial Verification",
        "statuses": [
          "Approved"
        ]
      },
      {
        "step": "E-Signature",
        "statuses": [
          "Approved"
        ]
      },
      {
        "step": "CRM Integration",
        "statuses": [
          "Completed"
        ]
      },
      {
        "step": "Credit Check",
        "statuses": [
          "Approved"
        ]
      },
      {
        "step": "Identity Verification",
        "statuses": [
          "Approved"
        ]
      },
      {
        "step": "Custom Questionnaire",
        "statuses": [
          "Approved"
        ]
      },
      {
        "step": "Self Declaration",
        "statuses": [
          "Approved"
        ]
      },
      {
        "step": "Background Check",
        "statuses": [
          "Approved"
        ]
      },
      {
        "step": "Court & Eviction Checks",
        "statuses": [
          "Approved"
        ]
      }
    ],
    "updatedAt": "2026-04-10T16:30:32.013Z"
  },
  "application": {
    "status": "In Progress",
    "updatedAt": "2026-04-10T16:30:32.013Z"
  },
  "dataStep": [
    {
      "step": "Loan Request",
      "data": {
        "id": "35827328-61cc-47c4-b5c9-809c6630784a",
        "annualInterest": 100,
        "calculatorConfig": {
          "upfrontFee": 0,
          "originationFee": 0,
          "brokerageFeePercent": 0
        },
        "calculatorType": "Installment",
        "minimumLoanAmount": 100,
        "applicationDate": "2026-04-10T15:44:27.955Z",
        "approvalDate": "",
        "businessId": "9956134d-c746-57e6-8a7e-0be300dfe5c7",
        "detailsOnUseOfFunds": "",
        "externalCustomerId": "",
        "purposes": [],
        "urgencyOfFunds": "",
        "name": "Full",
        "amount": "200.00",
        "assignments": [
          {
            "fullName": "",
            "email": "",
            "phoneNumber": "",
            "id": ""
          }
        ]
      }
    },
    {
      "step": "Identity Verification",
      "data": {
        "gender": "Male",
        "dateOfIssue": "2012-11-30T00:00:00.000Z",
        "fullName": "TEST CARD SAMPLE",
        "country": "CAN",
        "dateOfBirth": "1982-01-04T00:00:00.000Z",
        "dateOfExpiration": "2017-11-30T00:00:00.000Z",
        "documentNumber": "2222222",
        "documentType": 3,
        "province": "BC",
        "frontImageUrl": "https://staging.api.oncarousel.com/uploads/kyc/8ac994fb-667f-49a3-8987-53456a6205aa.jpg?Expires=1775839532&Key-Pair-Id=K1G5A68240S8O&Signature=NyX8OQ~xHjGnSWvB5wpj6kb5a52c1WQ7gQ2tvpvpWjF5SpkbJDZ0AISkU1BYVRb2gd4zzbF3svgVs26JuEzdLCr0vl3MMKplxShdDthyakikV27kfSoFDYEJrlXzQjl7GIZv1vZOrbcyik80fveyjVTKespEFuBr4b3hrDAlKCJwdHTFEwf7B1~4drilt8VUGTXAGsKonsZSOlZOPHxJ0isjMZkjuAVxBwB0SSH3OJ58YEmcBX8Pj4b~ycKlYcdt8HKlizeW2C0P1gbt-NWMCsiejHrYN9m8JvAr-v2MgZOAXexo0EmnCOy5KblIWwfocqMFHVd~ilvM~uMLQQWLbA__",
        "address": "910 GOVERNMENT ST, VICTORIA BC V8W 3Y8"
      }
    },
    {
      "step": "Financial Verification",
      "data": {
        "loginId": "f4847c89-9d93-4e1f-1544-08ddf53a0c5c",
        "bankAccount": [
          {
            "accountTitle": "Chequing CAD",
            "accountNumber": "1111000",
            "institutionNumber": "777",
            "institutionName": "FlinksCapital",
            "transitNumber": "77777",
            "category": "Operations",
            "type": "Chequing",
            "currency": "CAD",
            "balanceAvailable": 50300,
            "balanceCurrent": 50000,
            "balanceLimit": 0,
            "overdraftLimit": 0,
            "holder": {
              "fullname": "John Doe",
              "email": "johndoe@flinks.io",
              "phoneNumber": "(514) 333-7777",
              "address": {
                "address": "1275 avenue des Canadiens-de-Montréal",
                "city": "Montréal",
                "province": "QC",
                "zipCode": "H3B 5E8",
                "country": "CA"
              }
            }
          },
          {
            "accountTitle": "First Home Savings Account",
            "accountNumber": "FHSA1234567",
            "institutionNumber": "",
            "institutionName": "FlinksCapital",
            "transitNumber": "",
            "category": "Products",
            "type": "FHSA",
            "currency": "CAD",
            "balanceAvailable": 0,
            "balanceCurrent": 200000,
            "balanceLimit": 0,
            "overdraftLimit": 0,
            "holder": {
              "fullname": "John Doe",
              "email": "johndoe@flinks.io",
              "phoneNumber": "(514) 333-7777",
              "address": {
                "address": "1275 avenue des Canadiens-de-Montréal",
                "city": "Montréal",
                "province": "QC",
                "zipCode": "H3B 5E8",
                "country": "CA"
              }
            }
          },
          {
            "accountTitle": "Plaid Saving",
            "accountNumber": "1111",
            "institutionNumber": "",
            "institutionName": "RBC Royal Bank",
            "transitNumber": "",
            "category": "other",
            "type": "depository",
            "currency": "CAD",
            "balanceAvailable": 200,
            "balanceCurrent": 210,
            "balanceLimit": 0,
            "overdraftLimit": 0,
            "holder": {
              "fullname": "Alberta Bobbeth Charleson",
              "email": "accountholder0@example.com",
              "phoneNumber": "1112223333",
              "address": {
                "address": "478 Plaid Street",
                "city": "Gingham",
                "province": "AB",
                "zipCode": "T0B 0Z0",
                "country": "CA"
              }
            }
          },
          {
            "accountTitle": "Credit card",
            "accountNumber": "420024******4242",
            "institutionNumber": "",
            "institutionName": "FlinksCapital",
            "transitNumber": "",
            "category": "Credits",
            "type": "CreditCard",
            "currency": "CAD",
            "balanceAvailable": 20000,
            "balanceCurrent": 10000,
            "balanceLimit": 30000,
            "overdraftLimit": 0,
            "holder": {
              "fullname": "John Doe",
              "email": "johndoe@flinks.io",
              "phoneNumber": "(514) 333-7777",
              "address": {
                "address": "1275 avenue des Canadiens-de-Montréal",
                "city": "Montréal",
                "province": "QC",
                "zipCode": "H3B 5E8",
                "country": "CA"
              }
            }
          },
          {
            "accountTitle": "Line of Credit",
            "accountNumber": "LC010101",
            "institutionNumber": "",
            "institutionName": "FlinksCapital",
            "transitNumber": "",
            "category": "Credits",
            "type": "LineOfCredit",
            "currency": "CAD",
            "balanceAvailable": 6000,
            "balanceCurrent": 3000,
            "balanceLimit": 9000,
            "overdraftLimit": 0,
            "holder": {
              "fullname": "John Doe",
              "email": "johndoe@flinks.io",
              "phoneNumber": "(514) 333-7777",
              "address": {
                "address": "1275 avenue des Canadiens-de-Montréal",
                "city": "Montréal",
                "province": "QC",
                "zipCode": "H3B 5E8",
                "country": "CA"
              }
            }
          },
          {
            "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": "johndoe@flinks.io",
              "phoneNumber": "(514) 333-7777",
              "address": {
                "address": "1275 avenue des Canadiens-de-Montréal",
                "city": "Montréal",
                "province": "QC",
                "zipCode": "H3B 5E8",
                "country": "CA"
              }
            }
          },
          {
            "accountTitle": "Plaid Cash Management",
            "accountNumber": "9002",
            "institutionNumber": "",
            "institutionName": "RBC Royal Bank",
            "transitNumber": "",
            "category": "other",
            "type": "depository",
            "currency": "CAD",
            "balanceAvailable": 12060,
            "balanceCurrent": 12060,
            "balanceLimit": 0,
            "overdraftLimit": 0,
            "holder": {
              "fullname": "Alberta Bobbeth Charleson",
              "email": "accountholder0@example.com",
              "phoneNumber": "1112223333",
              "address": {
                "address": "478 Plaid Street",
                "city": "Gingham",
                "province": "AB",
                "zipCode": "T0B 0Z0",
                "country": "CA"
              }
            }
          },
          {
            "accountTitle": "Chequing US",
            "accountNumber": "1111001",
            "institutionNumber": "777",
            "institutionName": "FlinksCapital",
            "transitNumber": "77777",
            "category": "Operations",
            "type": "Chequing",
            "currency": "USD",
            "balanceAvailable": 25300,
            "balanceCurrent": 25000,
            "balanceLimit": 0,
            "overdraftLimit": 0,
            "holder": {
              "fullname": "John Doe",
              "email": "johndoe@flinks.io",
              "phoneNumber": "(514) 333-7777",
              "address": {
                "address": "1275 avenue des Canadiens-de-Montréal",
                "city": "Montréal",
                "province": "QC",
                "zipCode": "H3B 5E8",
                "country": "CA"
              }
            }
          },
          {
            "accountTitle": "Plaid Checking",
            "accountNumber": "0000",
            "institutionNumber": "",
            "institutionName": "RBC Royal Bank",
            "transitNumber": "",
            "category": "checking",
            "type": "depository",
            "currency": "CAD",
            "balanceAvailable": 100,
            "balanceCurrent": 110,
            "balanceLimit": 0,
            "overdraftLimit": 0,
            "holder": {
              "fullname": "Alberta Bobbeth Charleson",
              "email": "accountholder0@example.com",
              "phoneNumber": "1112223333",
              "address": {
                "address": "478 Plaid Street",
                "city": "Gingham",
                "province": "AB",
                "zipCode": "T0B 0Z0",
                "country": "CA"
              }
            }
          },
          {
            "accountTitle": "Another Business Account",
            "accountNumber": "BA777",
            "institutionNumber": "777",
            "institutionName": "FlinksCapital",
            "transitNumber": "77777",
            "category": "Credits",
            "type": "Chequing",
            "currency": "CAD",
            "balanceAvailable": 84,
            "balanceCurrent": 42,
            "balanceLimit": 0,
            "overdraftLimit": 0,
            "holder": {
              "fullname": "Mo'e Money Inc.",
              "email": "biz@flinks.com",
              "phoneNumber": "514-123-4567",
              "address": {
                "address": "1000 de la Gaucheti\ufffdre",
                "city": "Montreal",
                "province": "QC",
                "zipCode": "A1A 1A1",
                "country": "CA"
              }
            }
          },
          {
            "accountTitle": "Personal loan",
            "accountNumber": "LO020202",
            "institutionNumber": "",
            "institutionName": "FlinksCapital",
            "transitNumber": "",
            "category": "Credits",
            "type": "LoanPersonal",
            "currency": "CAD",
            "balanceAvailable": 0,
            "balanceCurrent": 200000,
            "balanceLimit": 0,
            "overdraftLimit": 0,
            "holder": {
              "fullname": "John Doe",
              "email": "johndoe@flinks.io",
              "phoneNumber": "(514) 333-7777",
              "address": {
                "address": "1275 avenue des Canadiens-de-Montréal",
                "city": "Montréal",
                "province": "QC",
                "zipCode": "H3B 5E8",
                "country": "CA"
              }
            }
          },
          {
            "accountTitle": "Business Account",
            "accountNumber": "BA-12345",
            "institutionNumber": "777",
            "institutionName": "FlinksCapital",
            "transitNumber": "77777",
            "category": "Operations",
            "type": "Unknown",
            "currency": "CAD",
            "balanceAvailable": 0,
            "balanceCurrent": 1000000,
            "balanceLimit": 0,
            "overdraftLimit": 0,
            "holder": {
              "fullname": "Very Successful Inc.",
              "email": "success@flinks.com",
              "phoneNumber": "514-777-7777",
              "address": {
                "address": "123 Moon Dr.",
                "city": "Golden City",
                "province": "QC",
                "zipCode": "H0H 0H0",
                "country": "CA"
              }
            }
          }
        ]
      }
    },
    {
      "step": "Custom Questionnaire",
      "data": {
        "questions": [
          {
            "id": "f913043a-c667-41c2-8dcc-b7ffe8bbb301",
            "name": "What is your phone number - Email?",
            "answer": "123"
          }
        ]
      }
    },
    {
      "step": "E-Signature",
      "data": {
        "documentId": "44MMZgzKoH7nMeRMLjR7mL",
        "document": "https://staging.api.oncarousel.com/uploads/legal-contract/82c2e17f-5c30-43be-a595-d41b89433a6a?Expires=1775839533&Key-Pair-Id=K1G5A68240S8O&Signature=FfTnsORbGhleGS96Zxy6cnnCttRjtm0cbJBTIOdHPn2yfezNCwN8TBrJkmBdaTDahDXXdwpBtzWGyPkAhjrQtjvHMDhQghmO92C6-kk710fTD~hKEHO9rqw7-1suzW~63J0tIQ6TFSFtO-~k-vY6qMQckeT3S0AYDeglCOzxCoxq-UAckhcLWAbt3gjcPNSw3tIXSUnom5EBlRNoyCTJF18~vkSUBqsP-IMgI2gfziRgqUsjSJ1y0B1tLpHzIVETjzD9pXjz-zjo2fWTSvZboz~HyHTPwsV4my2d7It-ZCqFSdkAWs07yr-FR3SUaAxCVA2JDkfcOP0NOJ73vaSbQA__"
      }
    },
    {
      "step": "Credit Check",
      "data": "https://staging.api.oncarousel.com/uploads/credit-check/dc8ef61b-35a2-4634-88d8-38e637abb2c4/975ZZ70232?Expires=1775839533&Key-Pair-Id=K1G5A68240S8O&Signature=Y-tEflENSye7HdCJ2q3FWRyweAF7gqgRTK~73ZEe9MPv3FBvA26lfnIR7W6o8tuzX4MsNRtitZGwfMxs9tjtIS8S85RzPyAF~HaxB0SA0rkxRXzDGwfUTdpFgC8yEDnK4l1oVlXHCazq2AsBPsdpaxgzLWVF7P3jCjwnGgc6KCEs1bThS084IjeJ8Wd0aA6HEpOSulORNzNWmtsPjG89q0QtyvKXkTwjSAFHyJaT6sHVQ0ZQ9I-JQP0Ceddkt2DujWVwHC93bNVBDb6SQKh6EBejLEe8Xiz3eZUjtsalnucseR9pewjGBa8tBkwOW1vcRepgCoNfSwsX6jTSCvK93g__"
    },
    {
      "step": "Background Check",
      "data": {
        "criminalChecks": {
          "reportId": "69d924ca4658d28470210cd5",
          "status": "Incomplete",
          "serviceType": "STANDARD_CRIMINAL_RECORD_CHECK",
          "standardResult": "Incomplete",
          "submittedAt": null,
          "completedAt": "2026-04-10T16:30:30.764Z",
          "info": {
            "birthCity": "111",
            "birthCountry": "111",
            "birthProvince": "111",
            "dateOfBirth": "1982-01-04T00:00:00.000Z",
            "email": "admin@oncarousel.com",
            "firstName": "TEST CARD",
            "lastName": "SAMPLE",
            "phone": "+15005550006",
            "gender": "Male"
          },
          "addressHistory": [
            {
              "address": "910 GOVERNMENT ST",
              "city": null,
              "country": "CAN",
              "province": "BC",
              "zipCode": null
            }
          ],
          "verification": {
            "passed": true,
            "verifiedAt": "2026-04-10T16:26:51.532Z"
          },
          "convictions": [],
          "pdfs": [
            {
              "note": "This is a test document - not a real criminal check result",
              "label": "Standard Criminal Record Check (TEST)",
              "docRefId": "test_doc_1775838416763",
              "pdfUrl": "https://staging.api.oncarousel.com/uploads/criminal-check/69d924ca4658d28470210cd5/test_doc_1775838416763.pdf?Expires=1775839533&Key-Pair-Id=K1G5A68240S8O&Signature=1LhYfqT6ZHzSUgjJ5JPxO13X7U5pTKVhbPtaJQ-7WTbVGmXDpKUMwiLtKlCzw~nvueN25nNYI4CqXxs1XG4WP~jm0~z7QIlOmufMZhllYBo48TkdTLsm-gItGKJ2O9~9rdLebuOjBek8TAsa-9dKV~TNdCCDVWzo84XQF7yA9xo3iUOuGMfZrvEWo6ngGij9mRdP8kxMZz3C1PgZFRf9p5wTNgXiqc1~myhLLYP3AYPpC3wgxB3tu9UMbQIFMJ2t4Ms48dOD3Oy2lga03TJa2XM~aZuH9-jHqCK1KxzxK1arT9YclnMglRKvRQ~BiWiBPl-F9hG3m7PC7mnPBsjlyQ__",
              "isSecure": true
            }
          ]
        }
      }
    },
    {
      "step": "Court & Eviction Checks",
      "data": {
        "legalChecks": [
          {
            "status": "Completed",
            "reporter": "Openroom Sandbox",
            "isMatch": true,
            "message": "Cleared, no matching court records found in available databases",
            "items": [
              {
                "url": "https://openroom.ca/dashboard/document/19b33f3e-dceb-4a81-9fcc-6e81f29ec771",
                "title": "OR-SANDBOX-4: Filed by landlord on 2022-05-05",
                "name": "Dama Ging",
                "address": "BASEMENT, 13 DEBTOR DRIVE, OSHAWA, B2B2B2"
              }
            ]
          }
        ]
      }
    },
    {
      "step": "Self Declaration",
      "data": {
        "monthlyIncomeAmount": 13300,
        "employmentStatusDetail": {
          "status": "Employed Full Time",
          "position": "123",
          "startDate": "2026-04-10",
          "companyName": "123",
          "employerEmail": "123@gmail.com",
          "employerFullName": "123",
          "employerPhoneNumber": "+15555555555"
        },
        "lifestyleInformation": [
          "I vape or smoke",
          "I own pets",
          "I have a criminal background"
        ],
        "livingStatusDetail": {
          "status": "Other",
          "detail": "2323232"
        }
      }
    }
  ],
  "updatedAt": "2026-04-10T16:30:32.649Z"
}

Important: Document & Image Handling (S3 Links)

Carousel no longer sends documents or images as base64 in webhook payloads. Instead, file fields (for example frontImageUrl) contain a temporary, pre-signed Amazon S3 URL.

How It Works

  • The URL points to a file stored in Carousel’s Amazon S3 bucket
  • The URL is publicly accessible but expires after 15 minutes
  • After expiration, the link will no longer be valid

Required Action (Recommended)

When your system receives a webhook containing file URLs:

  1. Immediately download the file from the S3 URL
  2. Store it securely in your own system or storage provider
  3. Do not rely on the URL for long-term access

If the URL expires before you download the file, the document cannot be accessed using that link.

Webhook Failure & Retry

If your webhook endpoint is unavailable, times out, or fails to process the payload (for example due to expired file links), you can manually re-trigger the webhook.

Retry from the Portal

  1. Log in to the Carousel Portal
  2. Open the relevant Application
  3. Navigate to the Webhook section
  4. Click Re-send Webhook

This will send the latest available payload again, including fresh S3 URLs for any files.

Carousel Portal — application menu with Send to a Webhook
Carousel PortalThe application ⋮ menu — re-deliver the payload from here.

Support

Need help with:

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

We’re here to help: Speak to Support

Developer guides · For developers

Pricing and usage

Billing is simple: you’re only charged when an applicant completes a billable step.

Overview

Carousel charges per billable step — there are no platform fees beyond the steps applicants actually complete.

A billable step is any verification an applicant completes in a workflow — identity, KYB, financial, credit, background, court & eviction, fraud & compliance screening, e-signature, or payment. Only completed steps are charged.


Who Pays: Applicant or Business

Every workflow can be configured with one of two payment structures:

  • Business pays — your business covers the verification costs and applicants complete the workflow at no charge. Results are delivered to your business as part of the application.
  • Applicant pays — the applicant prepays for all the verifications they are about to undergo. They own their verified profile, choose whether to share it with the requester — or with others — and can request a refund if there are issues with their workflow.

When Charges Happen

A charge occurs when an applicant completes a billable step in your workflow — nothing is charged before that.

  • Completed steps — charged at the step’s fee.
  • Abandoned steps — never charged, if the applicant never reached them.
  • Failed steps — charged: the step ran.
  • Applicant-paid workflows — the applicant prepays for all the verifications in the workflow; if there are issues, they can request a refund.
  • Invoices — itemized by billable step.

Fees by Billable Step

Billable StepProviderFee
Identity VerificationOnfido / Ondato$- / step
Know Your Business (KYB)Carousel$- / step
Financial VerificationPlaid / Flinks$- / step
Credit CheckTransUnion / Equifax / Experian (coming soon)$- / step
Background CheckFastkey / Checkr$- / step
Court & Eviction ChecksOpenRoom / SOQUIJ / TAL / Checkr$- / step
Fraud, AML & ComplianceSanction Scanner$- / step
Applicant PaymentStripe$- / step
E-SignaturePandaDoc$- / step
Custom QuestionnaireCarousel built-in$- / step
API / WebhooksCarousel API$- / call

All Billable Steps Supported by Carousel

CategoryService / Step TypeDescription
Financial VerificationBank ConnectConnect and verify applicant bank accounts securely.
EnrichmentGenerate income and transaction insights from financial data.
Document UploadRetrieve verified data from uploaded financial data.
Rule EngineApply decision rules on financial data.
Identity VerificationBiometric Scan + IDMatch ID to selfie for identity verification.
E-SignatureSign DocumentSend and track e-signature requests (via PandaDoc).
Credit CheckCredit Report PullRetrieve credit bureau data (TransUnion, Equifax; Experian coming soon).
Applicant PaymentVerification FeeCollect the verification fee that initiates the workflow (via Stripe).
Know Your BusinessKYB CheckVerify a business’s identity, ownership, and registration details.
Background CheckCriminal Record SearchIdentify criminal history or risk indicators (Fastkey, Checkr).
Court & Eviction ChecksCourt Record SearchSurface filings, disputes, or legal activity (OpenRoom, SOQUIJ, TAL, Checkr).
Fraud, AML & ComplianceWatchlist ScreeningScreen against sanctions and AML watchlists (Sanction Scanner).
Custom QuestionnaireData CollectionGather applicant information through dynamic forms.
API / WebhooksPost URL / Data TransferExchange data between Carousel and your system.

Example Workflow and Total Cost

Let’s say your workflow includes:

  1. Identity Verification
  2. Financial Verification
  3. Credit Check
  4. E-Signature
  5. Applicant Payment

If an applicant completes every step, here’s what you’re charged:

StepProviderFee
Identity VerificationOnfido$- / step
Financial VerificationFlinks$- / step
Credit CheckEquifax$- / step
E-SignaturePandaDoc$- / step
Applicant PaymentStripe$- / step
Total for the workflow≈ $ -

FAQ

Who pays for a workflow — my business or the applicant?

Either, depending on how the workflow is configured. If your business pays, applicants complete the workflow at no charge and the results are delivered to you. If the applicant pays, they prepay for all the verifications upfront, own their verified profile, choose whether to share it with you — or with others — and can request a refund if there are issues with their workflow.

When am I charged?

When an applicant completes a billable step. Every step that ran is itemized on your invoice, including any that failed. Steps the applicant never reached are not charged.

What happens if an applicant drops off mid-way?

You’re charged for the steps that ran, including any that failed. Steps the applicant never reached are not charged.

Are fees itemized?

Yes. Each invoice includes a breakdown of usage by Billable Step.

Developer guides · For developers

Developer FAQ

Help with your questions directly from the Carousel team — setup, integrations, pricing, security, and compliance.

About Carousel

What is Carousel?

Carousel is a modular platform that simplifies how businesses collect, verify, and process applicant data — turning complex workflows into intuitive digital flows.

Do I need to code to use Carousel?

Nope! Carousel is built for speed and simplicity. You can create flows using our drag-and-drop interface without writing a single line of code.

Can I white-label Carousel?

Yes. You can brand the applicant experience with your logo and brand colors.


Integrations & Workflow Setup

Who pays for the verifications?

Workflows can be configured either way: your business covers the verification costs, or the applicant pays to initiate their own workflow. When the applicant pays, they prepay for all the verifications upfront, own their verified profile, choose whether to share it with you — or with others — and can request a refund if there are issues with their workflow.

What kind of data can I collect with Carousel?

Everything from identity documents and banking data to e-signatures and payments. You choose the modules that fit your flow.


Pricing & Billing

How does pricing work?

Carousel charges per billable step — any verification an applicant completes in a workflow. See Pricing and usage for the full breakdown.


Security & Compliance

Is Carousel compliant with Quebec’s Law 25?

Yes. Carousel is fully compliant with Law 25 for Quebec users and applicants.

Are you SOC 2 compliant?

We’re currently completing our SOC 2 Type I audit and will notify partners once certified.

What kind of access control does Carousel provide?

We support Role-Based Access Control (RBAC) and token-based authentication (JWT) to manage permissions per workspace.

Do you log system and user activity?

Yes. We use Datadog and AWS CloudWatch to log access attempts, anomalies, and other activity.

Do you support secure document uploads?

Yes. Documents are encrypted in transit and stored securely using AES-256 encryption in S3.

Can I delete applicant data on request?

Yes. Carousel supports right-to-erasure and data deletion requests under Law 25 and other privacy laws.

Additional questions? Speak to Support

Help center · Overview

Help center

Support, billing, and refunds — for applicants and account holders alike.

Start here for anything account-related. If you cannot find an answer, contact the team — we reply within one business day.

For applicants

For account holders

Reaching a person

ChannelUse it forResponse
support@oncarousel.comA live application or workflow issueSame business day
hi@oncarousel.comAnything generalOne business day
+1 (855) 508-8989Urgent applicant issuesMon–Sun, 8am–8pm ET
Help center · Billing

The verification fee

Why the fee exists, what it covers, and when it is charged.

In an applicant-paid workflow, the applicant prepays for the verifications in that workflow. The fee covers every step in the flow — nothing else is billed to the applicant afterwards.

What it covers

  • Each verification step configured in the workflow.
  • The verified profile the applicant keeps and can share.
  • Re-sharing that profile with another business at no extra charge.

When it is charged

  • Once, upfront, before the verifications run.
  • Steps that never complete are refundable — see Request a refund.
Business-paid workflows

If the business covers the cost, applicants complete the workflow with no charge at all.

Help center · Billing

Request a refund

How and when to ask for a refund.

How to request one

  1. Reopen the link you used to apply.
  2. Choose Request a refund, or write to support@oncarousel.com with your phone number and the business you applied to.
  3. You will get confirmation the same business day.

When a refund applies

  • A step failed or could not complete.
  • The workflow was duplicated or charged twice.
  • A verification returned nothing usable through no fault of yours.

Timing

Approved refunds return to the original payment method, typically within 5–10 business days.

Partial refunds

Where only some steps failed, only those steps are refunded — completed verifications stay with your profile.

Help center · Billing

Refunds FAQ

The short answers.

Timing

How long does a refund take? Typically 5–10 business days back to the original method.

Can I check the status? Yes — reply to your confirmation email and support will confirm where it is.

Amount

Can I get a partial refund? Yes, where only some steps failed.

Do completed verifications get refunded? No — those results stay in your profile and remain shareable.

Contact

Who do I contact? support@oncarousel.com, or +1 (855) 508-8989 for anything urgent.

The infrastructure of yes.

See your intake run on Carousel — every rail, one demo.