> ## Documentation Index
> Fetch the complete documentation index at: https://developer.tazapay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Technical Service Provider Integration

> Enable fintechs and financial services companies to serve their end customers through Tazapay's payout infrastructure

# Overview

Technical Service Providers (TSPs) can integrate with Tazapay to enable fintechs, financial services companies, and marketplaces to offer global payout capabilities to their end customers (ultimate remitters).

## Key Participants

* **Technical Service Provider (TSP)**: Platform or technology provider that integrates with Tazapay and manages the technical integration on behalf of multiple fintechs
* **Fintech / Marketplace**: Financial services company or marketplace that serves ultimate remitters and requires payout capabilities
* **Ultimate Remitter**: The end customer of the fintech/marketplace who initiates the payout request
* **Tazapay**: Compliance and payout orchestrator that handles KYB, beneficiary screening, and cross-border disbursements
* **Beneficiary**: The recipient who receives the payout

## Built-in Compliance and Security

All transactions are subject to comprehensive compliance checks:

* **Entity-level KYB**: Full Know Your Business verification for fintech/marketplace entities
* **Remitter screening**: Sanction & PEP screening for ultimate remitters
* **Beneficiary validation**: Account validation and screening
* **Adverse media checks**: Automated fraud and risk detection
* **Real-time approval workflows**: Transaction monitoring and approval

# Integration Flow

## High-level Architecture

```mermaid theme={null}
sequenceDiagram
    participant UR as Ultimate Remitter
    participant FT as Fintech/Marketplace
    participant TSP as Technical Service Provider
    participant TZ as Tazapay
    participant BF as Beneficiary

    Note over TSP,TZ: Entity Onboarding
    TSP->>TZ: Create Entity for Fintech
    TZ->>TZ: Perform KYB on Fintech Entity
    TZ->>TSP: Entity Approved/Pending

    TSP->>TZ: Create Entity for Ultimate Remitter
    TZ->>TSP: Remitter Entity Created

    Note over UR,BF: Payout Flow
    UR->>FT: Request Payout
    FT->>TSP: Initiate Payout Request

    opt Quote Generation (Optional)
        TSP->>TZ: Request Quote
        TZ->>TSP: Quote (FX + Fees)
        TSP->>FT: Display Quote
        FT->>UR: Show Total Amount
        UR->>FT: Confirm Quote
    end

    TSP->>TZ: Create Payout (on behalf of Remitter)
    TZ->>TZ: Compliance Screening
    TZ->>TSP: Payout Created

    alt Prefunding
        Note over TSP,TZ: Funds already in balance
        TZ->>TZ: Deduct from balance
    else Per-Transaction Funding
        TZ->>TSP: Funding Required
        TSP->>TZ: Transfer Funds
        TZ->>TSP: Funds Received
        TSP->>TZ: Confirm Payout
    end

    TZ->>BF: Execute Payout
    TZ->>TSP: Payout Webhook (Success/Failed)
    TSP->>FT: Notify Status
    FT->>UR: Transaction Complete
```

# Implementation Guide

## Step 1: Entity Onboarding

### 1.1 Create Fintech/Marketplace Entity

The TSP creates an entity for each fintech or marketplace that will use the platform.

**Onboarding Type:** [Full Onboarding](/Global-Money-Movement/start-here/onboarding-requirements)

Fintechs and platforms must complete full entity onboarding with comprehensive business verification:

* Business registration verification
* Document validation
* Sanctions screening
* Entity status flow: `pending` → `approved` or `rejected`

**API Reference:**

* [Create Entity API](/API-Reference/tazapay-api/entity/create-entity)
* [Entity Object Schema](/API-Reference/tazapay-api/entity/entity)
* [Business Onboarding Requirements](/Global-Money-Movement/appendix/onboarding-requirements/onboarding-requirements-businesses)

### 1.2 Create Ultimate Remitter Entities

The TSP creates entities for ultimate remitters (end customers) on behalf of the fintech entity.

**Onboarding Type:** [Simplified Onboarding](/Global-Money-Movement/connected-accounts/simplified-entity-creation)

Ultimate remitters undergo simplified entity creation with basic information:

* Uses `on_behalf_of` field to link remitter to fintech entity
* Faster approval with basic screening
* Minimal documentation required

**API Reference:**

* [Create Entity API](/API-Reference/tazapay-api/entity/create-entity)
* [Simplified Entity Creation Guide](/Global-Money-Movement/connected-accounts/simplified-entity-creation)

## Step 2: Quote Generation (Optional)

Quotes provide transparency on FX rates and fees before payout creation.

**What Quotes Include:**

* **FX Rate**: Real-time exchange rate for currency conversion
* **Fees**: Total processing fees
* **Total Deduction**: Exact amount that will be deducted from balance
* **Validity Period**: Quote expiration time (typically 15-30 minutes)

<Info>
  The quote step is **optional**. You can create payouts directly without quotes. However, quotes provide transparency and help end users understand the total cost upfront.
</Info>

**API Reference:**

* [Create Payout Quote API](/API-Reference/tazapay-api/payout/create-payout-quote)
* [Quote Management Guide](/Global-Money-Movement/payouts/managing-fx/creating-a-quote-and-then-attaching-it-to-a-payout)

## Step 3: Funding Configuration

Choose between two funding models based on your business needs:

### Option A: Prefunding

**How it works:**

* TSP or fintech maintains a balance with Tazapay
* Funds are deposited in advance via wire transfer or other methods
* Each payout automatically deducts from the balance

**Benefits:**

* Faster payout processing
* No additional confirmation step
* Suitable for high-volume operations
* Streamlined workflow

### Option B: Per-Transaction Funding (Just-in-Time)

**How it works:**

* Funds are transferred for each individual transaction
* Payout enters `requires_confirmation` status after creation
* TSP transfers funds using:
  * **Stablecoins**: USDT, USDC via blockchain networks
  * **Fiat**: Real-time payment methods (wire transfer, local bank transfers)
* Explicit confirmation required after funding is received

**Benefits:**

* No prefunding required
* Better fund management and control
* Suitable for lower transaction volumes
* Pay-as-you-go model
* Flexible funding sources (crypto or fiat)

<Warning>
  Per-transaction funding requires an **additional confirmation step** after funds are received. Ensure your integration handles the `requires_confirmation` status and implements the confirmation flow.
</Warning>

**API Reference:**

* [Create Payout API](/API-Reference/tazapay-api/payout/create-payout)
* [Confirm Payout API](/API-Reference/tazapay-api/payout/confirm-payout)
* [Funding a Payout Guide](/Global-Money-Movement/integration-guides/funding-a-payout-after-creation)

## Step 4: Create Payout

Create payouts on behalf of ultimate remitters using the Create Payout API.

**Required Information:**

* **Entity ID**: Ultimate remitter's entity ID (created in Step 1.2)
* **On Behalf Of**: Fintech/marketplace entity ID (created in Step 1.1)
* **Beneficiary Details**: Recipient's bank account or wallet information
* **Amount & Currency**: Payout amount and currency
* **Purpose Code**: Transaction purpose (e.g., PYR001 for salary, PYR002 for services)
* **Quote ID**: (Optional) Link to previously created quote for locked rates

**API Reference:**

* [Create Payout API](/API-Reference/tazapay-api/payout/create-payout)
* [Payout Object Schema](/API-Reference/tazapay-api/payout/payout)
* [Beneficiary API](/API-Reference/tazapay-api/beneficiary/create-beneficiary)
* [Purpose Codes](/Global-Money-Movement/payouts/purpose)
* [Payouts on Behalf Of Guide](/Global-Money-Movement/integration-guides/payouts-on-behalf-of)

## Step 5: Handle Webhooks

Subscribe to webhook events to track payout status and notify end users in real-time.

**Key Webhook Events:**

* `payout.created` - Payout record created
* `payout.requires_confirmation` - Waiting for funds (per-transaction funding only)
* `payout.funded` - Funds received and confirmed
* `payout.processing` - Payout in progress
* `payout.completed` - Payout successful
* `payout.failed` - Payout failed

**Implementation Guide:**

* Configure webhook endpoint in your Tazapay dashboard
* Verify webhook signatures for security
* Handle idempotent webhook delivery (retries may occur)
* Update your system and notify end users based on events

**API Reference:**

* [Payout Webhooks](/API-Reference/tazapay-api/payout/payout-webhooks)
* [Webhook Authentication Guide](/API-Reference/appendix/webhooks/Webhook-Authentication)
* [Webhook Retry Policy](/API-Reference/appendix/webhooks/Webhook-Retry-Policy)
* [Webhooks Setup Guide](/API-Reference/appendix/webhooks/Webhooks-Guide)

# Entity Hierarchy

```
Technical Service Provider (TSP)
│
├── Fintech Entity A (Full Onboarding)
│   ├── Ultimate Remitter 1 (Simplified Onboarding)
│   ├── Ultimate Remitter 2 (Simplified Onboarding)
│   └── Ultimate Remitter 3 (Simplified Onboarding)
│
├── Fintech Entity B (Full Onboarding)
│   ├── Ultimate Remitter 4 (Simplified Onboarding)
│   └── Ultimate Remitter 5 (Simplified Onboarding)
│
└── Marketplace Entity C (Full Onboarding)
    ├── Ultimate Remitter 6 (Simplified Onboarding)
    └── Ultimate Remitter 7 (Simplified Onboarding)
```

**Onboarding Types:**

* **Full Onboarding**: Required for fintechs, platforms, and marketplaces with comprehensive business verification
* **Simplified Onboarding**: Used for ultimate remitters with minimal documentation requirements

# Testing

Use sandbox environment for testing:

* **Sandbox Dashboard**: `https://dashboard-sandbox.tazapay.com`
* Test entity creation and verification flows
* Simulate different payout scenarios
* Test webhook integrations
* Use test credentials for stablecoin and fiat funding

# API Resources

* [Create Entity](/API-Reference/tazapay-api/entity/create-entity)
* [Create Payout Quote](/API-Reference/tazapay-api/payout/create-payout-quote)
* [Create Payout](/API-Reference/tazapay-api/payout/create-payout)
* [Confirm Payout](/API-Reference/tazapay-api/payout/confirm-payout)
* [Beneficiary API](/API-Reference/tazapay-api/beneficiary/create-beneficiary)
* [Payout Webhooks](/API-Reference/tazapay-api/payout/payout-webhooks)
* [Payouts on Behalf Of](/Global-Money-Movement/integration-guides/payouts-on-behalf-of)
