Overview
Financing Integration Guide
Display pre-qualified financing offers to your customers using Slate’s embedded financing solution.
This guide walks you through the full integration flow — from registering businesses to embedding financing offers and monitoring financing agreements.
Overview
Slate allows you to surface pre-qualified financing offers directly inside your product. Businesses are evaluated automatically, and approved offers are displayed via an embeddable banner.
How It Works
- Send business data — Share your customer's business information and revenue data with Slate
- Automatic evaluation — Slate evaluates businesses and generates pre-approval offers
- Create session token — Generate a secure token on your backend for each business
- Display offers — Embed Slate's script in your frontend to show financing banners
- Customer application — Users click the banner and complete their application on Slate's hosted page
- Financing agreement — Approved applications result in financing agreements, with webhook notifications sent to your system
Integration Steps
Step 1 — Create a Business
First, register each business in Slate's system. Use your own stable identifier as the externalId to easily reference the business later.
POST https://api.tryslatehq.com/businesses
Request:
{
"externalId": "biz_123",
"legalName": "Acme Corp",
"dba": "Acme",
"website": "https://acme.com",
"type": "PARTNERSHIP",
"address": {
"address1": "123 Main St",
"address2": null,
"city": "San Francisco",
"postalCode": "94105",
"country": "US",
"state": "AL"
},
"contact": {
"fullName": "John Doe",
"email": "john@acme.com",
"phone": "+15551234567"
}
}
Response:
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"externalId": "biz_123",
"legalName": "Acme Corp",
"dba": "Acme",
"type": "PARTNERSHIP",
"website": "https://acme.com",
"address": {
"address1": "123 Main St",
"address2": null,
"city": "San Francisco",
"postalCode": "94105",
"country": "US",
"state": "AL"
},
"contact": {
"fullName": "John Doe",
"email": "john@acme.com",
"phone": "+15551234567"
}
}
You can use either Slate's id or your externalId in subsequent API calls.
Step 2 — Attach Financial Data
Provide financial information to enable Slate to evaluate the business for pre-approval. You can submit data in two formats:
POST https://api.tryslatehq.com/businesses/{id}/attach-financial-data
Request:
{
"externalId": "biz_123",
"timeseries": [
{
"date": "2025-01-01",
"propertyName*": "anything"
}
]
}
Response:
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"businessId": "123e4567-e89b-12d3-a456-426614174000",
"timeseries": [
{
"date": "2025-01-01",
"propertyName*": "anything"
}
]
}
Step 3 — Check for Pre-Approvals
After submitting business and revenue data, Slate automatically evaluates businesses for pre-qualification. Check if a business has an active pre-approval:
GET https://api.tryslatehq.com/pre-approvals?externalId=biz_123
Response:
{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"businessId": "123e4567-e89b-12d3-a456-426614174000",
"externalId": "biz_123",
"status": "ACTIVE",
"amount": 10000,
"currency": "CAD",
"repaymentFrequency": 1,
"repaymentFrequencyUnit": "month",
"origin": "slate",
"createdAt": "2025-01-01T00:00:00Z",
"updatedAt": "2025-01-01T00:00:00Z"
}
],
"page": 1,
"limit": 1,
"total": 1,
"totalPages": 1
}
Pre-approval statuses:
- ACTIVE — Available for the customer to accept
- REJECTED — Business did not qualify
- EXPIRED — Offer has expired
- CONSUMED — Customer has applied for this offer
Step 4 — Create a User Session Token
Generate a secure session token on your backend for each business that will view financing offers. This token authenticates the embedded banner.
POST https://api.tryslatehq.com/user-sessions
Request:
{
"externalId": "biz_123"
}
Response:
{
"token": "ust_a1b2c3d4e5f6g7h8i9j0"
}
⚠️ Important
Generate this token server-side to protect your API key. Never expose your API key in frontend code.
Note: If the externalId doesn't match an existing business, a new business record will be created automatically when the customer submits an application.
Step 5 — Embed the Financing Banner
Add Slate's script to your frontend and pass the session token. The banner will automatically appear if the business has an active pre-approval.
<!DOCTYPE html>
<html>
<head>
<title>Your Application</title>
</head>
<body>
<!-- Your application content -->
<!-- Slate financing banner -->
<div id="slate-financing-banner"></div>
<script src="https://cdn.tryslatehq.com/banner.js"></script>
<script>
Slate.init({
token: 'ust_a1b2c3d4e5f6g7h8i9j0', // Session token from Step 4
containerId: 'slate-financing-banner'
});
</script>
</body>
</html>
Behavior:
- If the business has an ACTIVE pre-approval, the banner displays the offer details
- If no pre-approval exists, nothing is rendered
- Clicking the banner opens Slate's application flow in a new window or modal
Step 6 — Monitor Applications
Track the status of applications submitted by your customers:
GET https://api.tryslatehq.com/application?externalId=biz_123
Response:
{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"businessId": "123e4567-e89b-12d3-a456-426614174000",
"currentStep": "INTRO",
"status": "DRAFT",
"externalId": "biz_123",
"createdAt": "2025-01-01T00:00:00Z"
}
],
"page": 1,
"limit": 1,
"total": 1,
"totalPages": 1
}
Application statuses:
- DRAFT — Application started but not submitted
- REQUIRES_ACTION — Additional information needed from the customer
- PROCESSING — Under review by Slate
- APPROVED — Application approved, financing agreement created
- REJECTED — Application declined
Step 7 — Access Financing Agreements
Once an application is approved, retrieve the financing agreement details:
GET https://api.tryslatehq.com/financing-agreements?externalId=biz_123
Response:
{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"businessId": "123e4567-e89b-12d3-a456-426614174000",
"type": "fixed_mca",
"fixedMCA": {
"paybackAmount": 10000,
"factorRate": 1.2
},
"fundedAmount": 10000,
"fundedDate": "2025-01-01T00:00:00Z",
"currency": "CAD",
"firstPaymentDate": "2025-01-01T00:00:00Z",
"estimatedLastPaymentDate": "2025-01-01T00:00:00Z",
"status": "IN_PROGRESS",
"term": 12,
"termUnit": "month",
"repaymentFrequency": 1,
"repaymentFrequencyUnit": "month",
"remainingBalance": 10000,
"totalPaid": 10000,
"createdAt": "2025-01-01T00:00:00Z",
"updatedAt": "2025-01-01T00:00:00Z"
}
],
"page": 1,
"limit": 1,
"total": 1,
"totalPages": 1
}
Webhook notifications
Slate will notify you of important events via webhooks. You will be able to configure your endpoints ant the suscribed events in the dashboard.
Common events:
- Application status changes
- Financing agreement created
- Payment processed
- Payment failed
Authentication
All API requests require authentication using your private API key in the x-api-key header:
Note: You can create multiple api keys in the developer section of the dasbhoard
curl https://api.tryslatehq.com/businesses \
-H "x-api-key: your_private_api_key" \
-H "Content-Type: application/json"
⚠️ Important
Never expose your private API key in client-side code. Always generate session tokens on your backend.
Pagination
List endpoints support pagination using page and limit parameters:
GET https://api.tryslatehq.com/businesses?page=2&limit=10
Testing
Contact the Slate team at integrations@tryslatehq.com to:
- Obtain your API credentials
- Configure pre-approval criteria for your integration
- Set up webhook endpoints
- Access the testing environment
Best practices
Keep business data current — Update business information and revenue data regularly to ensure accurate pre-approvals.
Cache session tokens — Session tokens can be reused for the same business within a session. Generate new tokens periodically for security.
Handle missing offers gracefully — The banner won't render if there's no active pre-approval. Design your UI to work with or without the financing offer.
Monitor application status — Poll the applications endpoint or use webhooks to stay informed about application progress.
Test thoroughly — Verify the integration in your staging environment before going live.
Need help?
Contact the Slate integration team at integrations@tryslatehq.com for support with:
- API credentials and access
- Pre-approval configuration
- Webhook setup
- Integration question