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

  1. Send business data — Share your customer's business information and revenue data with Slate
  2. Automatic evaluation — Slate evaluates businesses and generates pre-approval offers
  3. Create session token — Generate a secure token on your backend for each business
  4. Display offers — Embed Slate's script in your frontend to show financing banners
  5. Customer application — Users click the banner and complete their application on Slate's hosted page
  6. 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