# About

Align API allows Businesses, Individuals & Financial Institutions to programatically move money between stablecoins and fiat currencies.

#### Fiat-to-Stablecoin Transfers (On-Ramp)

The Fiat-to-Stablecoin API lets you convert fiat currencies - including USD, EUR, AED, and over 60 others - directly into stablecoins such as USDC or USDT across multiple blockchains. You simply specify the fiat amount and the destination wallet address, and Align takes care of all currency conversions and blockchain transactions behind the scenes.

***

#### Stablecoin-to-Fiat Transfers (Off-Ramp)

The Stablecoin-to-Fiat API enables the reverse process: converting stablecoins back into fiat currencies. You send stablecoins to Align, specify the desired fiat currency - whether USD, EUR, AED, or any of the 60+ supported options - and Align handles the conversion and transfer to your bank account in local currency.

***

#### Advanced Payment Infrastructure (Named IBANs, 3rd Party Payments)

Align provides a unified payment infrastructure that supports named Virtual IBANs, third-party payments, automated settlements, real-time reconciliations, MT103 certificates, multi-currency and FX capabilities, integrated compliance workflows, and an API-first architecture with real-time notifications.

***

#### Cross-Chain Transfers

The Cross-Chain Transfers API allows you to move stablecoins across different blockchains programmatically. You send stablecoins to Align, specify the recipient address and target blockchain, and Align manages all bridging, conversions, and deposits to ensure the funds arrive correctly on the chosen chain.

***

#### Yield-Generating Stablecoins (Coming Soon)

Soon, Align will offer an API to manage deposits and withdrawals into yield-generating stablecoin products. This will allow you to programmatically move funds into interest-bearing protocols and retrieve them whenever needed, making it simple to grow and manage your crypto assets.

More features & products coming soon.&#x20;

**Contact us**

If you have any questions about our API, please reach out to us via <pavel@alignlabs.dev> or telegram at <https://t.me/buildingalign>.


# Features & Use Cases

Align's API suite simplifies cross-chain transfers, stablecoin-to-fiat conversions, and fiat-to-stablecoin on-ramping.

#### Embedded On-Ramp

Convert fiat currencies into stablecoins directly within your application, giving users seamless access to digital assets without leaving your platform.

***

#### Embedded Off-Ramp

Allow users to convert stablecoins back into fiat currencies effortlessly, ensuring smooth and compliant off-ramps to local banking rails.

***

#### Named Collections

Create unique, named collection accounts for receiving payments, simplifying reconciliation and tracking across multiple payers and currencies.

***

#### Named Payouts

Set up named payout accounts to easily manage and automate outgoing payments to suppliers, partners, or customers, all with clear attribution and reporting.

***

#### Cross-Border Payments

Enable global payments in stablecoins with built-in conversion to and from local currencies, streamlining international money movement.

***

#### Cross-Chain Transfers

Move stablecoins seamlessly across multiple blockchains with secure, reliable, and efficient transfers.

***

#### Stablecoin Swaps

Move funds across all major stablecoins and major chains. Pragramatically manage flow of funds.

***

#### Yield-Generating Stablecoins (Coming Soon)

Programmatically deposit and withdraw funds from yield-generating stablecoin products to optimize returns on idle balances while maintaining liquidity.

**Contact us**

If you have any questions about our API, please reach out to us via <pavel@alignlabs.dev> or telegram at <https://t.me/buildingalign>.


# Blockchains & Stablecoins

Our API streamlines stablecoin transfers and money movement across a variety of major blockchain networks.

| **Blockchain** | **USDC** | **USDT** | **EURC** |
| :------------: | :------: | :------: | :------: |
|    Ethereum    |     ✅    |     ✅    |     ✅    |
|     Polygon    |     ✅    |     ✅    |     -    |
|    Optimisim   |     ✅    |     ✅    |     -    |
|    Arbitrum    |     ✅    |     ✅    |     -    |
|    Avalanche   |     ✅    |     -    |     ✅    |
|      Base      |     ✅    |     -    |     ✅    |
|     Solana     |     ✅    |     ✅    |     ✅    |
|      Tron      |     -    |     ✅    |     -    |

We are constantly extending our support for more chains & stablecoins. Reach out if you want to learn more!


# Countries & Currencies

List of currencies & countries we support.

**Core Currenices**

We currently offer fully developed infrastructure for four core currencies: USD, EUR, GBP & AED.

<table><thead><tr><th width="159.1875">Currency</th><th>On-Ramp</th><th>Off-Ramp</th><th>3rd Party Pay-Outs</th><th>3rd Party Pay-Ins</th><th>Named IBANs</th></tr></thead><tbody><tr><td><strong>USD (ACH &#x26; Wire)</strong></td><td>✅</td><td>✅</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td><strong>USD (SWIFT)</strong></td><td>✅</td><td>✅</td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td><strong>EUR</strong></td><td>✅</td><td>✅</td><td>✅</td><td>✅</td><td>✅ </td></tr><tr><td><strong>GBP</strong></td><td>✅</td><td>✅</td><td>✅ </td><td>✅ </td><td>✅ </td></tr><tr><td><strong>AED</strong></td><td>✅</td><td>✅</td><td>✅</td><td>✅</td><td>✅</td></tr></tbody></table>

Please note that C2B and C2C collections may be restricted amongst some currencies. Our goal is to continually expand coverage by adding more currencies and enhancing our infrastructure to support both business and consumer payments worldwide.


# Getting Started

This guide will walk you through how to start building with the Align API, from onboarding to your first payment flow.

#### 1. Request API Access

To receive your API key:

1. Email **<pavel@alignlabs.dev>** to request API access
2. Sign the developer agreement
3. Receive **sandbox** and **production** API keys via secure link

> Store your API keys securely and only use them from a secure backend environment.

#### 2. Create a Customer

Every transfer is completed on behalf of a customer. To create a customer, use a [Create Customer](https://docs.alignlabs.dev/align-api/customers/create-customer) endpoint.

Example:

```javascript
curl -X POST https://api.alignlabs.dev/v0/customers \
-H "Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "email": "name@gmail.com",
  "first_name": "John",
  "last_name": "Doe",
  "type": "individual"
}'
```

Response:

```javascript
{
  "customer_id": "123e4567-e89b-12d3-a456-426614174000",
  "first_name": "John",
  "last_name": "Doe",
  "email": "name@gmail.com",
  "type": "individual"
}
```

You can now use `customer_id` to initiate a KYC session.

#### 3. Start KYC Verification

Every customer needs to go through KYC/KYB. To initiate a KYC session, use a [Create KYC Session](https://docs.alignlabs.dev/align-api/customers/create-kyc-session) endpoint.

Example:

```javascript
curl -X POST https://api.alignlabs.dev/v0/customers/{customer_id}/kycs \
-H "Api-Key: YOUR_API_KEY" \
```

Response:

```javascript
{
  "kycs": {
    "kyc_flow_link": "https://link-to-kyc-provider.com"
  }
}
```

Once a customer completed KYC, their `kycs.status_breakdown`  object will display for which currency / rails customer is `approved`.

### 4. Complete Verification and Enable Payment Rails

When the customer completes KYC/KYB, Align will approve currency and payment rail access (for example USD, EUR, GBP, or stablecoins).

After approval, you can:

* Create virtual accounts
* Initiate on-ramp transfers (fiat to stablecoin)
* Initiate off-ramp transfers (stablecoin to fiat)

### 5. Webhooks for Real-Time Updates

To receive live events such as:

* Customer KYC status changes
* Transfer updates
* Account events

Register your webhook URL:

**Docs:** <https://docs.alignlabs.dev/align-api/webhooks>

Align will push real-time events to your webhook.

### 6. Developer Dashboard Access

You can manage customers, transfers, and test flows from the dashboard.

Request access by sending admin emails to the Align team.

**URL:** <https://dashboard.alignlabs.dev/>

We will provision accounts for your team.

***

### That's It - You Are Ready to Build

From here you can:

* Initiate payments
* Create virtual accounts
* Monitor activity and users in real time
* Plug into global fiat and stablecoin rails


# Create customer

Step by step guide on how to create a customer.

#### Step 1 - Create Customer

Every transfer is completed on behalf of a customer. To create a customer, use a [Create Customer](/align-api/customers/create-customer) endpoint. &#x20;

Example:

```sh
curl -X POST https://api.alignlabs.dev/v0/customers \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "email": "name@gmail.com",
  "first_name": "John",
  "last_name": "Doe",
  "type": "individual"
}'
```

Response:

```json
{
  "customer_id": "123e4567-e89b-12d3-a456-426614174000",
  "email": "name@gmail.com"
}
```

You can now use `customer_id` to initiate a KYC session.

**Step 2 - Know Your Customer**

Every customer needs to go through KYC/KYB. To initiate a KYC session, use a [Create KYC Session](/align-api/customers/create-kyc-session) endpoint.

Example:

```bash
curl -X POST https://api.alignlabs.dev/v0/customers \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "email": "name@gmail.com",
  "first_name": "John",
  "last_name": "Doe",
  "beneficiary_type": "individual"
}'
```

Response:

```json
{
  "kycs": {
    "status": "pending",
    "kyc_flow_link": "https://link-to-kyc-provider.com"
  }
}
```

Once a customer completed KYC, their `kycs.status` will change to `approved`.&#x20;


# Fiat To Stablecoin (On-Ramp)

Enable your users to convert fiat into stablecoins.

Enable your users to seamlessly convert fiat currencies into stablecoins like **USDT** or **USDC** using the **Onramp API**. Funds are deposited via a bank account, and we support the following payment networks:

* USD: ACH
* USD: FedWire
* USD: SWIFT
* EUR: SEPA Instant / Credit
* AED: IPP (Instant Payment Platform)
* AED: UAEFTS
* GBP: Faster Payments

More currencies coming soon. If you are interested in a specific currency, please reach out to the [sales team](https://cal.com/align-labs/30min) or contact us via [telegram](https://t.me/buildingalign).


# Stablecoin To Fiat (Off-Ramp)

Enable your users to convert stablecoins into fiat currencies.

Enable your users to seamlessly convert stablecoins like **USDT** or **USDC** to fiat currencies using the **Offramp API**. Funds are sent via a bank transfer, and we support the following payment networks:

* USD: ACH
* USD: FedWire
* USD: SWIFT
* EUR: SEPA Instant / Credit
* AED: IPP (Instant Payment Platform)
* AED: UAEFTS
* GBP: Faster Payments

More currencies coming soon. If you are interested in a specific currency, please reach out to the [sales team](https://cal.com/align-labs/30min) or contact us via [telegram](https://t.me/buildingalign).


# Virtual Accounts

Virtual Accounts let your users collect (on-ramp) funds into a named bank account and pay out (off-ramp) funds from a named bank account.

### Align Virtual Accounts

**Align Virtual Accounts** are permanent, reusable fiat deposit and payout bank accounts that streamline both sides of the fiat-crypto lifecycle.&#x20;

Named Virtual Accounts allow your users to collect **(on-ramp)** funds into a named bank account and pay-out **(off-ramp)** funds from a named bank account. Virtual accounts are used for routing and do not store balances on acccounts.

#### How It Works

1. **On-Ramps (Pay-Ins)**
   * Customers deposit fiat into a dedicated virtual account.
   * Every deposit is automatically converted into crypto (e.g., USDC, USDT) and delivered to a specified destination such as a wallet address, exchange account, or payment flow.
2. **Off-Ramps (Pay-Outs)**
   * Convert crypto back into fiat and deliver funds to local bank accounts.
   * Support for **named payments** ensures clear reconciliation and traceability for recipients.

***

#### Key Capabilities

* **Multi-Currency Support**
  * Accept and pay out in major fiat currencies, including **USD**, **EUR**, and **AED**, with more currencies planned.
  * Each currency provides local banking details like account numbers, routing codes, or **IBANs** for fast and cost-effective transfers.
* **Local Banking Rails**
  * **USD ACH/Wire Accounts**: Named U.S. account number and routing number for **ACH** or **wire** transfers.
  * **USD SWIFT Accounts:** Named IBAN for deposits and payouts.
  * **EUR Accounts**: **IBAN** for deposits and payouts via **SEPA** across Europe.
  * **AED Accounts**: Named **IBAN** for deposits and payouts via **UAEFTS** within the UAE.
* **Permanent & Reusable**
  * Once assigned to a customer, virtual accounts remain persistent for all future deposits or payouts, reducing operational complexity and payment friction.

***

If you are interested in learning more about our Virtual Accounts, please reach out to the [sales team](https://cal.com/align-labs/30min) or contact us via [telegram](https://t.me/buildingalign).


# Bank Accounts

Create local bank accounts globally without opening local entities. For example, instantly issue AED bank accounts to EU companies and USD bank accounts to South African businesses.

Align gives businesses instant local account presence across major markets without setting up local entities or banking relationships. Through a single API, companies can create named accounts in USD (SWIFT), EUR & AED with local account details for receiving and routing funds.

Each bank account acts like a local bank account or wallet address, enabling fast collections, instant settlement, and deterministic FX. Accounts plug directly into Align's payments and compliance engine, providing audit-ready controls, programmable workflows, and policy enforcement out of the box.

Use bank accounts to streamline customer collections, supplier payouts, treasury flows, and cross-border transfers. Align handles liquidity, local rails, and compliance, so global expansion becomes as simple as creating an account.

**Key benefits**

* Faster global expansion with instant access to local account details
* Automated routing and settlement through programmable workflows
* Reduced operational overhead by offloading banking, liquidity, and compliance complexity

***

**Difference between Bank Accounts and Virtual Accounts**

**Bank Accounts** function like traditional local accounts. Your business can hold balances in the local currency, receive payments from customers, and send payouts.

**Virtual Accounts** are payment-routing tools. They let your end-users on-ramp and off-ramp funds through named account details, but they do not hold balances.

***

**Contact Us**

This infrastructure is currently in beta. More currencies coming soon. If you are interested in a specific currency, please reach out to the [sales team](https://cal.com/align-labs/30min) or contact us via [telegram](https://t.me/buildingalign).


# Cross-Chain Stablecoin Transfers

Seamlessly transfer stablecoins across different blockchains, ensuring secure and efficient transactions.

[**Cross-Chain Transfer API** ](/align-api/cross-chain-transfers/create-cross-chain-transfer-from-quote)enables seamless, programmatic transfers of stablecoins across different blockchain networks. It allows users to transfer USDC & USDT from one blockchain to another in a secure and efficient manner. This API simplifies cross-chain stablecoin transfers, eliminating the complexities of manual bridging, especially when moving between EVM and non-EVM chains (e.g., USDT on Tron to USDC on Polygon).

**Key features include:**

**Cross-Chain Transfers:** Easily move tokens between various supported blockchains, like Ethereum, Binance Smart Chain, Optimism, Arbitrum, and more.

**Automated Bridging:** The API handles the entire bridging process, from initiating the transfer on the source chain to delivering the tokens on the target chain.

**Automated Swapping:** The API handles swapping between USDC & USDT across different chains (e.g. USDT.tron to USDC.ethereum).

**Customizable Transfer Options:** Users can specify the source and destination chains, the type of token, and the amount to transfer.

**Real-time Status Updates:** Track the status of transfers, ensuring transparency and allowing users to monitor the progress of their cross-chain transactions.<br>

This API is ideal for developers building multi-chain applications, exchanges and wallets looking to provide users with easy access to cross-chain liquidity and interoperability.


# Cross-Chain Stablecoin Deposits

Allow your customers to deposit their wallets across all major chains and stablecoins.

Enable your customers to deposit funds into their wallets seamlessly across multiple blockchain networks using stablecoins. With this API, you can create [**Permanent Route Addresses**](/align-api/cross-chain-transfers/create-permanent-route-address) for your customers, simplifying the process of receiving cross-chain deposits. <br>

For example, if your customer has a wallet on Polygon, you can generate multiple Permanent Route Addresses across different networks (such as EVM chains, Tron, or Solana) that link directly to their Polygon wallet. When USDC or USDT is sent to any of these Permanent Route Addresses, the stablecoins are automatically routed and deposited into the customer’s destination wallet on Polygon.

<figure><img src="/files/SBnBUDs10fnTPr9yFVvM" alt=""><figcaption></figcaption></figure>

This solution allows for a frictionless and user-friendly experience, ensuring that customers can manage deposits from various chains without the hassle of manual bridging or conversions.


# Yield Generating Stablecoins

Coming Soon.

Programmatically manage deposits and withdrawals into yield-generating stablecoin products. \
Coming Soon.


# Customers


# Create Customer

## POST /v0/customers

> Create a new customer

```json
{"openapi":"3.0.0","info":{"title":"Customers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers":{"post":{"summary":"Create a new customer","parameters":[{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomerRequestBodyModel"}}}},"responses":{"201":{"description":"Customer created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomerResponseSuccessModel"}}}}}}}},"components":{"schemas":{"CreateCustomerRequestBodyModel":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"The unique email address of the customer"},"first_name":{"type":"string","description":"The first name of the customer (required for individual customers)"},"last_name":{"type":"string","description":"The last name of the customer (required for individual customers)"},"company_name":{"type":"string","description":"The name of the company (required for corporate customers)"},"type":{"type":"string","enum":["individual","corporate"],"description":"The type of customer"}},"required":["email","type"]},"CreateCustomerResponseSuccessModel":{"type":"object","required":["customer_id","email","type"],"properties":{"customer_id":{"type":"string","format":"uuid","description":"The unique identifier for the customer"},"email":{"type":"string","format":"email","description":"The email address associated with the customer"},"company_name":{"type":"string","description":"The name of the company of the business customer"},"type":{"type":"string","enum":["individual","corporate"],"description":"The type of customer"},"first_name":{"type":"string","description":"The first name of the individual customer"},"last_name":{"type":"string","description":"The last name of the individual customer"}}}}}}
```


# Update Customer

## PUT /v0/customers/{customer\_id}

> Update customer data

```json
{"openapi":"3.0.0","info":{"title":"Customers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}":{"put":{"summary":"Update customer data","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","oneOf":[{"title":"Individual Customer","properties":{"account_purpose":{"type":"string","enum":["charitable_donations","ecommerce_retail_payments","investment_purposes","other","payments_to_friends_or_family_abroad","payroll","personal_or_living_expenses","protect_wealth","purchase_goods_and_services","receive_payments_for_goods_and_services","third_party_money_transmission","treasury_management"],"description":"The purpose of the account"},"account_purpose_other":{"type":"string","maxLength":1024,"description":"Description when account_purpose is other"},"acting_as_intermediary":{"type":"boolean","description":"Whether the customer is acting as an intermediary"},"expected_monthly_volume_usd":{"type":"string","maxLength":50,"description":"Expected monthly volume in USD"},"source_of_funds_description":{"type":"string","maxLength":2000,"description":"Description of the source of funds"},"external_kyc_provider_data":{"type":"object","properties":{"sumsub_share_kyc_token":{"type":"string","maxLength":512,"description":"SumSub share KYC token"}}},"documents":{"type":"array","maxItems":20,"items":{"type":"object","required":["file_id"],"properties":{"file_id":{"type":"string","maxLength":256,"description":"The ID of the uploaded file"},"purpose":{"type":"string","enum":["id_document","proof_of_address","proof_of_source_of_funds","other"],"description":"The purpose/type of the document"},"doc_side":{"type":"string","enum":["front","back"],"description":"The side of the document"},"description":{"type":"string","maxLength":1024,"description":"Optional description of the document"}}}},"first_name":{"type":"string","maxLength":128,"description":"First name of the individual"},"middle_name":{"type":"string","maxLength":128,"description":"Middle name of the individual"},"last_name":{"type":"string","maxLength":128,"description":"Last name of the individual"},"nationality":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"description":"Nationality of the individual (ISO 3166-1 alpha-2 country code)"},"birth_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","maxLength":10,"description":"Birth date of the individual (YYYY-MM-DD format)"},"birth_country":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"description":"Birth country of the individual (ISO 3166-1 alpha-2 country code)"},"most_recent_occupation":{"type":"string","maxLength":256,"description":"Most recent occupation of the individual"},"employment_status":{"type":"string","enum":["employed","homemaker","retired","self_employed","student","unemployed"],"description":"Employment status of the individual"},"residential_address":{"type":"object","required":["street_line_1","city","country","postal_code"],"properties":{"street_line_1":{"type":"string","maxLength":256,"description":"Street address line 1"},"street_line_2":{"type":"string","maxLength":256,"description":"Street address line 2"},"city":{"type":"string","maxLength":128,"description":"City"},"country":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"description":"Country (ISO 3166-1 alpha-2 country code)"},"postal_code":{"type":"string","maxLength":20,"description":"Postal code"},"state":{"type":"string","maxLength":128,"description":"State or province"}}},"identifying_information":{"type":"object","properties":{"id_document":{"type":"object","required":["number","type","issuing_country"],"properties":{"number":{"type":"string","maxLength":64,"description":"Identification document number"},"type":{"type":"string","enum":["passport","driver_license","residence_permit","government_id","state_or_provincial_id"],"description":"Type of identification document"},"issuing_country":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"description":"Country that issued the identification document (ISO 3166-1 alpha-2 country code)"}}},"tax_number":{"type":"object","required":["number","issuing_country"],"properties":{"number":{"type":"string","maxLength":64,"description":"Tax identification number"},"type":{"type":"string","maxLength":64,"description":"Type of tax number (e.g., ssn, tin,)"},"issuing_country":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"description":"Country that issued the tax number (ISO 3166-1 alpha-2 country code)"}}}}}}},{"title":"Business Customer","properties":{"account_purpose":{"type":"string","enum":["charitable_donations","ecommerce_retail_payments","investment_purposes","other","payments_to_friends_or_family_abroad","payroll","personal_or_living_expenses","protect_wealth","purchase_goods_and_services","receive_payments_for_goods_and_services","third_party_money_transmission","treasury_management"],"description":"The purpose of the account"},"account_purpose_other":{"type":"string","maxLength":1024,"description":"Description when account_purpose is other"},"acting_as_intermediary":{"type":"boolean","description":"Whether the customer is acting as an intermediary"},"expected_monthly_volume_usd":{"type":"string","maxLength":50,"description":"Expected monthly volume in USD"},"source_of_funds_description":{"type":"string","maxLength":2000,"description":"Description of the source of funds"},"external_kyc_provider_data":{"type":"object","properties":{"sumsub_share_kyc_token":{"type":"string","maxLength":512,"description":"SumSub share KYC token"}}},"documents":{"type":"array","maxItems":20,"items":{"type":"object","required":["file_id"],"properties":{"file_id":{"type":"string","maxLength":256,"description":"The ID of the uploaded file"},"purpose":{"type":"string","enum":["proof_of_address","proof_of_source_of_funds","business_formation","directors_registry","shareholder_registry","proof_of_nature_of_business","financial_statements","memorandum_articles_of_incorporation","other"],"description":"The purpose/type of the document"},"doc_side":{"type":"string","enum":["front","back"],"description":"The side of the document"},"description":{"type":"string","maxLength":1024,"description":"Optional description of the document"}}}},"business_legal_name":{"type":"string","maxLength":256,"description":"Legal name of the business"},"registration_number":{"type":"string","maxLength":1024,"description":"Business registration number"},"tax_number":{"type":"string","maxLength":1024,"description":"Business tax identification number"},"primary_website":{"type":"string","maxLength":512,"description":"Primary website of the business"},"formation_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","maxLength":10,"description":"Formation date of the business (YYYY-MM-DD format)"},"business_description":{"type":"string","maxLength":2000,"description":"Description of the business"},"business_address":{"type":"object","required":["street_line_1","city","country","postal_code"],"properties":{"street_line_1":{"type":"string","maxLength":256,"description":"Street address line 1"},"street_line_2":{"type":"string","maxLength":256,"description":"Street address line 2"},"city":{"type":"string","maxLength":128,"description":"City"},"country":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"description":"Country (ISO 3166-1 alpha-2 country code)"},"postal_code":{"type":"string","maxLength":20,"description":"Postal code"},"state":{"type":"string","maxLength":128,"description":"State or province"}}},"associated_persons":{"type":"array","maxItems":20,"items":{"type":"object","required":["first_name","last_name"],"properties":{"first_name":{"type":"string","maxLength":128,"description":"First name of the associated person"},"middle_name":{"type":"string","maxLength":128,"description":"Middle name of the associated person"},"last_name":{"type":"string","maxLength":128,"description":"Last name of the associated person"},"nationality":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"description":"Nationality of the associated person (ISO 3166-1 alpha-2 country code)"},"birth_country":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"description":"Birth country of the associated person (ISO 3166-1 alpha-2 country code)"},"has_ownership":{"type":"boolean","description":"Whether the person has ownership"},"has_control":{"type":"boolean","description":"Whether the person has control"},"ownership_percentage":{"type":"string","maxLength":10,"description":"Ownership percentage"},"identifying_information":{"type":"object","properties":{"id_document":{"type":"object","required":["number","type","issuing_country"],"properties":{"number":{"type":"string","maxLength":64,"description":"Identification document number"},"type":{"type":"string","enum":["passport","driver_license","residence_permit","government_id","state_or_provincial_id"],"description":"Type of identification document"},"issuing_country":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"description":"Country that issued the identification document (ISO 3166-1 alpha-2 country code)"}}},"tax_number":{"type":"object","required":["number","issuing_country"],"properties":{"number":{"type":"string","maxLength":64,"description":"Tax identification number"},"issuing_country":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"description":"Country that issued the tax number (ISO 3166-1 alpha-2 country code)"}}}}},"documents":{"type":"array","maxItems":10,"items":{"type":"object","required":["file_id","purpose"],"properties":{"file_id":{"type":"string","maxLength":256,"description":"The ID of the uploaded file"},"purpose":{"type":"string","enum":["proof_of_address","id_document"],"description":"The purpose/type of the document"},"doc_side":{"type":"string","enum":["front","back"],"description":"The side of the document"},"description":{"type":"string","maxLength":1024,"description":"Optional description of the document"}}}},"residential_address":{"type":"object","required":["street_line_1","city","country","postal_code"],"properties":{"street_line_1":{"type":"string","maxLength":256,"description":"Street address line 1"},"street_line_2":{"type":"string","maxLength":256,"description":"Street address line 2"},"city":{"type":"string","maxLength":128,"description":"City"},"country":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"description":"Country (ISO 3166-1 alpha-2 country code)"},"postal_code":{"type":"string","maxLength":20,"description":"Postal code"},"state":{"type":"string","maxLength":128,"description":"State or province"}}}}}}}}]}}}},"responses":{"200":{"description":"Successful update of customer data"}}}}}}
```


# Get Customer

## GET /v0/customers/{customer\_id}

> Get customer data

```json
{"openapi":"3.0.0","info":{"title":"Customers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}":{"get":{"summary":"Get customer data","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful retrieval of customer data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCustomerResponseSuccessModel"}}}}}}}},"components":{"schemas":{"GetCustomerResponseSuccessModel":{"type":"object","required":["customer_id","email","type"],"properties":{"customer_id":{"type":"string","format":"uuid","description":"The unique identifier for the customer"},"email":{"type":"string","format":"email","description":"The email address associated with the customer"},"company_name":{"type":"string","description":"The name of the company of the business customer"},"type":{"type":"string","enum":["individual","corporate"],"description":"The type of customer"},"first_name":{"type":"string","description":"The first name of the individual customer"},"last_name":{"type":"string","description":"The last name of the individual customer"},"address":{"type":"object","nullable":true,"description":"Customer address information. Only available for customers with approved KYC status.","properties":{"country":{"type":"string","description":"The country of the customer address"},"city":{"type":"string","description":"The city of the customer address"},"street_line_1":{"type":"string","description":"The street address line 1"},"postal_code":{"type":"string","description":"The postal code of the customer address"},"state":{"type":"string","description":"The state/province of the customer address"}}},"kycs":{"type":"object","nullable":true,"required":["status","kyc_flow_link","status_breakdown"],"properties":{"status":{"type":"string","nullable":true,"enum":["pending","approved","rejected"],"description":"Overall KYC verification status based on the general KYC verification"},"status_breakdown":{"type":"array","description":"Detailed KYC status breakdown by currency and payment rails","items":{"type":"object","required":["currency","payment_rails","status"],"properties":{"currency":{"type":"string","enum":["aed","eur","usd"],"description":"The fiat currency"},"payment_rails":{"type":"string","enum":["uaefts","sepa","ach","wire"],"description":"The payment rails type"},"status":{"type":"string","enum":["pending","approved"],"description":"The KYC verification status for this currency and payment rails combination"}}}},"sub_status":{"type":"string","description":"Current sub-status of the KYC verification process when status is 'pending':\n* kyc_form_submission_started - Customer has initiated the KYC process and started filling out their details\n* kyc_form_submission_accepted - Customer has successfully completed the KYC flow and their documents have been accepted\n* kyc_form_resubmission_required - Additional information or documents needed after internal review, customer should use the same kyc_flow_link to resubmit\n","enum":["kyc_form_submission_started","kyc_form_submission_accepted","kyc_form_resubmission_required"]},"kyc_flow_link":{"type":"string"},"tos_link":{"type":"string","nullable":true,"description":"Link to the terms-and-conditions acceptance flow for this customer. Null until generated."}}}}}}}}
```


# Fetch Customers

## GET /v0/customers

> Fetch customers

```json
{"openapi":"3.0.0","info":{"title":"Customers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers":{"get":{"summary":"Fetch customers","parameters":[{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}},{"name":"email","in":"query","description":"Filter customers by email","required":false,"schema":{"type":"string","format":"email"}}],"responses":{"200":{"description":"Successful retrieval of customers data","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"customer_id":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email"},"company_name":{"type":"string","nullable":true},"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"type":{"type":"string","enum":["individual","corporate"]}}}}}}}}}}}}}}
```


# Create KYC Session

## POST /v0/customers/{customer\_id}/kycs

> Create a new KYC Session for a customer

```json
{"openapi":"3.0.0","info":{"title":"Customers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/kycs":{"post":{"summary":"Create a new KYC Session for a customer","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Successful creation of KYC","content":{"application/json":{"schema":{"type":"object","properties":{"kycs":{"type":"object","properties":{"kyc_flow_link":{"type":"string"}}}}}}}}}}}}}
```


# Simulate (Sandbox)

## POST /v0/customers/simulate

> Simulate customer actions

```json
{"openapi":"3.0.0","info":{"title":"Customers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/simulate":{"post":{"summary":"Simulate customer actions","parameters":[{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","enum":["kyc.status.approve","kyc.sub_status.kyc_form_submission_accepted"],"description":"The action to simulate"},"customer_id":{"type":"string","description":"The unique identifier of the customer"}},"required":["action","customer_id"]}}}},"responses":{"200":{"description":"Successful simulation","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Bad request"},"403":{"description":"Forbidden - only available in non-production environments"}}}}}}
```


# Create Wallet Ownership Verification Link

## POST /v0/customers/{customer\_id}/wallet-ownership

> Create wallet ownership verification link

```json
{"openapi":"3.0.0","info":{"title":"Customers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/wallet-ownership":{"post":{"summary":"Create wallet ownership verification link","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletOwnershipVerificationRequestModel"}}}},"responses":{"201":{"description":"Successful creation of wallet ownership verification link","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletOwnershipVerificationResponseModel"}}}}}}}},"components":{"schemas":{"WalletOwnershipVerificationRequestModel":{"type":"object","properties":{"wallet_address":{"type":"string","description":"The wallet address to verify ownership of"}},"required":["wallet_address"]},"WalletOwnershipVerificationResponseModel":{"type":"object","properties":{"verification_flow_link":{"type":"string","description":"The link to the wallet ownership verification flow"}}}}}}
```

## The WalletOwnershipVerificationResponseModel object

```json
{"openapi":"3.0.0","info":{"title":"Customers API","version":"0"},"components":{"schemas":{"WalletOwnershipVerificationResponseModel":{"type":"object","properties":{"verification_flow_link":{"type":"string","description":"The link to the wallet ownership verification flow"}}}}}}
```

## The WalletOwnershipVerificationRequestModel object

```json
{"openapi":"3.0.0","info":{"title":"Customers API","version":"0"},"components":{"schemas":{"WalletOwnershipVerificationRequestModel":{"type":"object","properties":{"wallet_address":{"type":"string","description":"The wallet address to verify ownership of"}},"required":["wallet_address"]}}}}
```


# External Accounts


# Create External Account

## Create new External Account

> Creates external account and returns account information

```json
{"openapi":"3.0.0","info":{"title":"External Accounts API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/external-accounts":{"post":{"summary":"Create new External Account","description":"Creates external account and returns account information","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Unique key to prevent duplicate requests","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExternalAccountBodyModel"}}}},"responses":{"201":{"description":"Successful external account creation response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalAccountModel"}}}}}}}},"components":{"schemas":{"CreateExternalAccountBodyModel":{"type":"object","description":"External account details for bank transfers. Can be either IBAN-based or US-based account.","oneOf":[{"title":"IBAN Account Details","description":"Use this option for European and other IBAN-supported bank accounts","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["iban"]},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}},"required":["bank_name","account_holder_type","account_holder_address","account_type","iban"]},{"title":"US Account Details","description":"Use this option for US-based bank accounts using routing and account numbers","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["us"]},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}},"required":["bank_name","account_holder_type","account_holder_address","account_type","us"]},{"title":"International Wire Account Details","description":"Use this option for international wire (SWIFT) transfers using account number, routing number, and BIC","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["international_wire"]},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}},"required":["account_number","routing_number","bic"]}},"required":["id","created_at","bank_name","account_holder_type","account_holder_address","account_type","international_wire"]}]},"ExternalAccountModel":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["iban"]},"iban":{"type":"object","properties":{"iban_number":{"type":"string"},"bic":{"type":"string"}},"required":["iban_number","bic"]}},"required":["id","created_at","bank_name","currency","account_holder_type","account_holder_address","account_type","iban"]},{"title":"US Account Details","properties":{"id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["us"]},"us":{"type":"object","properties":{"routing_number":{"type":"string"},"account_number":{"type":"string"}},"required":["routing_number","account_number"]}},"required":["id","created_at","bank_name","currency","account_holder_type","account_holder_address","account_type","us"]},{"title":"International Wire Account Details","properties":{"id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["international_wire"]},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}},"required":["account_number","routing_number","bic"]}},"required":["id","created_at","bank_name","account_holder_type","account_holder_address","account_type","international_wire"]}]}}}}
```


# Get All External Accounts

## Get External Accounts

> Retrieves all external accounts for a customer

```json
{"openapi":"3.0.0","info":{"title":"External Accounts API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/external-accounts":{"get":{"summary":"Get External Accounts","description":"Retrieves all external accounts for a customer","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful external accounts retrieval response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ExternalAccountModel"}}}}}}}}}}},"components":{"schemas":{"ExternalAccountModel":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["iban"]},"iban":{"type":"object","properties":{"iban_number":{"type":"string"},"bic":{"type":"string"}},"required":["iban_number","bic"]}},"required":["id","created_at","bank_name","currency","account_holder_type","account_holder_address","account_type","iban"]},{"title":"US Account Details","properties":{"id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["us"]},"us":{"type":"object","properties":{"routing_number":{"type":"string"},"account_number":{"type":"string"}},"required":["routing_number","account_number"]}},"required":["id","created_at","bank_name","currency","account_holder_type","account_holder_address","account_type","us"]},{"title":"International Wire Account Details","properties":{"id":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["international_wire"]},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}},"required":["account_number","routing_number","bic"]}},"required":["id","created_at","bank_name","account_holder_type","account_holder_address","account_type","international_wire"]}]}}}}
```


# Offramp Transfers


# Create Quote

## POST /v0/customers/{customer\_id}/offramp-transfer/quote

> Create Offramp Transfer Quote

```json
{"openapi":"3.0.0","info":{"title":"Offramp API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/offramp-transfer/quote":{"post":{"summary":"Create Offramp Transfer Quote","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Unique key to prevent duplicate requests","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["source_token","source_network","destination_currency","destination_payment_rails"],"oneOf":[{"title":"By Source Amount","properties":{"source_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of source token to offramp (required when calculating quote from source to destination)"},"source_token":{"type":"string","enum":["usdc","usdt","eurc"],"description":"The token to offramp"},"source_network":{"type":"string","enum":["polygon","ethereum","solana","base","arbitrum"],"description":"The blockchain network for the source token"},"destination_currency":{"type":"string","enum":["usd","eur","aed"],"description":"The fiat currency to receive"},"destination_payment_rails":{"type":"string","enum":["ach","wire","sepa","swift","uaefts"],"description":"The payment rails to use for fiat transfer"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the quote"}}},{"title":"By Destination Amount","properties":{"source_token":{"type":"string","enum":["usdc","usdt","eurc"],"description":"The token to offramp"},"source_network":{"type":"string","enum":["polygon","ethereum","solana","base","arbitrum"],"description":"The blockchain network for the source token"},"destination_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of fiat currency to receive (required when calculating quote from destination to source)"},"destination_currency":{"type":"string","enum":["usd","eur","aed"],"description":"The fiat currency to receive"},"destination_payment_rails":{"type":"string","enum":["ach","wire","sepa","swift","uaefts"],"description":"The payment rails to use for fiat transfer"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the quote"}}}],"description":"Either source_amount OR destination_amount must be provided to calculate the quote in the desired direction"}}}},"responses":{"201":{"description":"Quote created successfully","content":{"application/json":{"schema":{"type":"object","required":["quote_id","source_amount","source_token","source_network","destination_currency","destination_payment_rails","destination_amount","exchange_rate","expire_at"],"properties":{"quote_id":{"type":"string","format":"uuid"},"source_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"source_token":{"type":"string"},"source_network":{"type":"string"},"destination_currency":{"enum":["usd","eur"],"type":"string"},"destination_payment_rails":{"type":"string"},"destination_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"fee_amount":{"type":"string"},"exchange_rate":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"expire_at":{"type":"string","format":"date-time","description":"UTC timestamp after which the quote can no longer be used to create a transfer"}}}}}}}}}}}
```


# Create Transfer From Quote

## POST /v0/customers/{customer\_id}/offramp-transfer/quote/{quote\_id}

> Create Offramp Transfer from Quote

```json
{"openapi":"3.0.0","info":{"title":"Offramp API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/offramp-transfer/quote/{quote_id}":{"post":{"summary":"Create Offramp Transfer from Quote","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"quote_id","in":"path","description":"The unique identifier of the quote","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Unique key to prevent duplicate requests","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"You can provide either a reference to an existing external account ID or the complete bank account details for the destination.","oneOf":[{"title":"Destination External Account ID","description":"Use this option when you have a pre-existing external account","properties":{"transfer_purpose":{"type":"string","description":"The purpose of the transfer","enum":["charity","commercial_investment","corporate_card","credit_card","dividend","family","financial_services","good_sold","goods_bought","government","insurance","intergroup_transfer","intra_group_dividends","information_technology","leasing","loan_charges","merchant_settlement","mobile_wallet","none","non_resident_transfer_between_accounts","pension","personal_expenses","prepaid_cards","professional","rental","resident_transfer_between_accounts","salaries","telecommunications","travel","utility_bill"]},"payment_reference":{"type":"string","maxLength":35,"description":"Free-text reference sent with the payment. Max 35 characters."},"destination_external_account_id":{"type":"string","format":"uuid","description":"The ID of the external account to use as the destination"},"documents":{"type":"array","items":{"type":"object","properties":{"file_id":{"type":"string","minLength":1,"maxLength":512,"description":"The ID of the uploaded file. To upload file see: https://docs.alignlabs.dev/align-api/files/upload-file"},"description":{"type":"string","maxLength":512}},"required":["file_id"]}}},"required":["destination_external_account_id"]},{"title":"Destination Bank Account Details","description":"Use this option to provide complete bank account information","properties":{"transfer_purpose":{"type":"string","description":"The purpose of the transfer","enum":["charity","commercial_investment","corporate_card","credit_card","dividend","family","financial_services","good_sold","goods_bought","government","insurance","intergroup_transfer","intra_group_dividends","information_technology","leasing","loan_charges","merchant_settlement","mobile_wallet","none","non_resident_transfer_between_accounts","pension","personal_expenses","prepaid_cards","professional","rental","resident_transfer_between_accounts","salaries","telecommunications","travel","utility_bill"]},"payment_reference":{"type":"string","maxLength":35,"description":"Free-text reference sent with the payment. Max 35 characters."},"destination_bank_account":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["iban"]},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}},"required":["bic","iban_number"]}},"required":["bank_name","account_holder_type","account_type","account_holder_address","iban"]},{"title":"US Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["us"]},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}},"required":["account_number","routing_number"]}},"required":["bank_name","account_holder_type","account_type","account_holder_address","us"]},{"title":"International Wire Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["international_wire"]},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}},"required":["account_number","routing_number","bic"]}},"required":["id","created_at","bank_name","account_holder_type","account_holder_address","account_type","international_wire"]}]},"documents":{"type":"array","items":{"type":"object","properties":{"file_id":{"type":"string","minLength":1,"maxLength":512,"description":"The ID of the uploaded file. To upload file see: https://docs.alignlabs.dev/align-api/files/upload-file"},"description":{"type":"string","maxLength":512}},"required":["file_id"]}}},"required":["destination_bank_account"]}]}}}},"responses":{"201":{"description":"Offramp transfer created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOfframpResponseSuccessModel"}}}},"400":{"description":"The quote can no longer be used to create a transfer. Possible reasons:\n- `Quote has expired` — the quote is past its `expire_at` window\n- `Quote has already been used for a transfer` — the quote was already consumed\n- `Quote not found`\n","content":{"application/json":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"CreateOfframpResponseSuccessModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the offramp transfer"},"status":{"type":"string","description":"The current status of the offramp transfer","enum":["pending","processing","completed"]},"amount":{"type":"string","format":"decimal","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The destination amount of the offramp transfer as a numeric string."},"source_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt"]},"source_network":{"type":"string","description":"The blockchain network for the source token","enum":["polygon","ethereum","base","tron","arbitrum","solana"]},"destination_currency":{"type":"string","description":"The currency for the destination","enum":["usd","eur","aed"]},"destination_payment_rails":{"type":"string","description":"The rails type to be used for the bank transfer","enum":["ach","wire","sepa","swift","uaefts"]},"transfer_purpose":{"type":"string","description":"The purpose of the transfer","enum":["charity","commercial_investment","corporate_card","credit_card","dividend","family","financial_services","good_sold","goods_bought","government","insurance","intergroup_transfer","intra_group_dividends","information_technology","leasing","loan_charges","merchant_settlement","mobile_wallet","none","non_resident_transfer_between_accounts","pension","personal_expenses","prepaid_cards","professional","rental","resident_transfer_between_accounts","salaries","telecommunications","travel","utility_bill"]},"payment_reference":{"type":"string","maxLength":35,"description":"Free-text reference sent with the payment. Max 35 characters."},"destination_bank_account":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["iban"]},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}},"required":["bank_name","account_holder_type","account_holder_address","account_type","iban"]},{"title":"US Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["us"]},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}},"required":["bank_name","account_holder_type","account_holder_address","account_type","us"]},{"title":"International Wire Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["international_wire"]},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}},"required":["account_number","routing_number","bic"]}},"required":["id","created_at","bank_name","account_holder_type","account_holder_address","account_type","international_wire"]}]},"quote":{"type":"object","properties":{"deposit_network":{"type":"string","description":"The blockchain network for the deposit","enum":["polygon","ethereum","tron","base","arbitrum","solana"]},"deposit_token":{"type":"string","description":"The token used for the deposit","enum":["usdc","usdt","eurc"]},"deposit_blockchain_address":{"type":"string","description":"The blockchain address where the funds should be deposited"},"deposit_amount":{"type":"string","description":"The amount to be deposited"},"source_amount":{"type":"string","description":"The source amount for the transfer"},"destination_amount":{"type":"string","description":"The destination amount for the transfer"},"exchange_rate":{"type":"string","description":"The exchange rate used for the transfer","pattern":"^[0-9]+(\\.[0-9]+)?$"},"fee_amount":{"type":"string","description":"The total fee amount for the onramp transfer, denominated in the deposit_currency"},"deposit_transaction_hash":{"type":"string","description":"The transaction hash of the completed deposit","nullable":true}}}}}}}}
```


# Create Offramp Transfer

## Create new Offramp Transfer

> Creates offramp transfer and returns deposit information

```json
{"openapi":"3.0.0","info":{"title":"Offramp API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/offramp-transfer":{"post":{"summary":"Create new Offramp Transfer","description":"Creates offramp transfer and returns deposit information","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Unique key to prevent duplicate requests","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOfframpRequestBodyModel"}}}},"responses":{"201":{"description":"Successful offramp transfer initiation response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOfframpResponseSuccessModel"}}}}}}}},"components":{"schemas":{"CreateOfframpRequestBodyModel":{"type":"object","properties":{"amount":{"type":"string","format":"decimal","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The destination amount of the offramp transfer as a numeric string."},"source_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt","eurc"]},"source_network":{"type":"string","description":"The blockchain network for the source token","enum":["polygon","ethereum","base","tron","arbitrum","solana"]},"destination_currency":{"type":"string","description":"The currency for the destination","enum":["usd","eur","aed"]},"destination_payment_rails":{"type":"string","description":"The rails type to be used for the bank transfer","enum":["ach","wire","sepa","swift","uaefts"]},"transfer_purpose":{"type":"string","description":"The purpose of the transfer","enum":["charity","commercial_investment","corporate_card","credit_card","dividend","family","financial_services","good_sold","goods_bought","government","insurance","intergroup_transfer","intra_group_dividends","information_technology","leasing","loan_charges","merchant_settlement","mobile_wallet","none","non_resident_transfer_between_accounts","pension","personal_expenses","prepaid_cards","professional","rental","resident_transfer_between_accounts","salaries","telecommunications","travel","utility_bill"]},"payment_reference":{"type":"string","maxLength":35,"description":"Free-text reference sent with the payment. Max 35 characters."},"destination_bank_account":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["iban"]},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}},"required":["bic","iban_number"]}},"required":["bank_name","account_holder_type","account_type","account_holder_address","iban"]},{"title":"US Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["us"]},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}},"required":["account_number","routing_number"]}},"required":["bank_name","account_holder_type","account_type","account_holder_address","us"]},{"title":"International Wire Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["international_wire"]},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}},"required":["account_number","routing_number","bic"]}},"required":["id","created_at","bank_name","account_holder_type","account_holder_address","account_type","international_wire"]}]}},"required":["amount","source_token","source_network","destination_currency","destination_bank_account","destination_payment_rails"]},"CreateOfframpResponseSuccessModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the offramp transfer"},"status":{"type":"string","description":"The current status of the offramp transfer","enum":["pending","processing","completed"]},"amount":{"type":"string","format":"decimal","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The destination amount of the offramp transfer as a numeric string."},"source_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt"]},"source_network":{"type":"string","description":"The blockchain network for the source token","enum":["polygon","ethereum","base","tron","arbitrum","solana"]},"destination_currency":{"type":"string","description":"The currency for the destination","enum":["usd","eur","aed"]},"destination_payment_rails":{"type":"string","description":"The rails type to be used for the bank transfer","enum":["ach","wire","sepa","swift","uaefts"]},"transfer_purpose":{"type":"string","description":"The purpose of the transfer","enum":["charity","commercial_investment","corporate_card","credit_card","dividend","family","financial_services","good_sold","goods_bought","government","insurance","intergroup_transfer","intra_group_dividends","information_technology","leasing","loan_charges","merchant_settlement","mobile_wallet","none","non_resident_transfer_between_accounts","pension","personal_expenses","prepaid_cards","professional","rental","resident_transfer_between_accounts","salaries","telecommunications","travel","utility_bill"]},"payment_reference":{"type":"string","maxLength":35,"description":"Free-text reference sent with the payment. Max 35 characters."},"destination_bank_account":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["iban"]},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}},"required":["bank_name","account_holder_type","account_holder_address","account_type","iban"]},{"title":"US Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["us"]},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}},"required":["bank_name","account_holder_type","account_holder_address","account_type","us"]},{"title":"International Wire Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["international_wire"]},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}},"required":["account_number","routing_number","bic"]}},"required":["id","created_at","bank_name","account_holder_type","account_holder_address","account_type","international_wire"]}]},"quote":{"type":"object","properties":{"deposit_network":{"type":"string","description":"The blockchain network for the deposit","enum":["polygon","ethereum","tron","base","arbitrum","solana"]},"deposit_token":{"type":"string","description":"The token used for the deposit","enum":["usdc","usdt","eurc"]},"deposit_blockchain_address":{"type":"string","description":"The blockchain address where the funds should be deposited"},"deposit_amount":{"type":"string","description":"The amount to be deposited"},"source_amount":{"type":"string","description":"The source amount for the transfer"},"destination_amount":{"type":"string","description":"The destination amount for the transfer"},"exchange_rate":{"type":"string","description":"The exchange rate used for the transfer","pattern":"^[0-9]+(\\.[0-9]+)?$"},"fee_amount":{"type":"string","description":"The total fee amount for the onramp transfer, denominated in the deposit_currency"},"deposit_transaction_hash":{"type":"string","description":"The transaction hash of the completed deposit","nullable":true}}}}}}}}
```


# Complete Offramp Transfer

## POST /v0/customers/{customer\_id}/offramp-transfer/{transfer\_id}/complete

> Finalize Offramp Transfer: Confirm Customer Deposit and Initiate Transfer Process

```json
{"openapi":"3.0.0","info":{"title":"Offramp API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/offramp-transfer/{transfer_id}/complete":{"post":{"summary":"Finalize Offramp Transfer: Confirm Customer Deposit and Initiate Transfer Process","parameters":[{"name":"transfer_id","in":"path","description":"The unique identifier of the cross-chain transfer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Unique key to prevent duplicate requests","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteOfframpTransferBodyModel"}}}},"responses":{"200":{"description":"Successful offramp transfer complete response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOfframpResponseSuccessModel"}}}}}}}},"components":{"schemas":{"CompleteOfframpTransferBodyModel":{"type":"object","properties":{"deposit_transaction_hash":{"type":"string","description":"The transaction hash of the deposit transaction"}},"required":["deposit_transaction_hash"]},"CreateOfframpResponseSuccessModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the offramp transfer"},"status":{"type":"string","description":"The current status of the offramp transfer","enum":["pending","processing","completed"]},"amount":{"type":"string","format":"decimal","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The destination amount of the offramp transfer as a numeric string."},"source_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt"]},"source_network":{"type":"string","description":"The blockchain network for the source token","enum":["polygon","ethereum","base","tron","arbitrum","solana"]},"destination_currency":{"type":"string","description":"The currency for the destination","enum":["usd","eur","aed"]},"destination_payment_rails":{"type":"string","description":"The rails type to be used for the bank transfer","enum":["ach","wire","sepa","swift","uaefts"]},"transfer_purpose":{"type":"string","description":"The purpose of the transfer","enum":["charity","commercial_investment","corporate_card","credit_card","dividend","family","financial_services","good_sold","goods_bought","government","insurance","intergroup_transfer","intra_group_dividends","information_technology","leasing","loan_charges","merchant_settlement","mobile_wallet","none","non_resident_transfer_between_accounts","pension","personal_expenses","prepaid_cards","professional","rental","resident_transfer_between_accounts","salaries","telecommunications","travel","utility_bill"]},"payment_reference":{"type":"string","maxLength":35,"description":"Free-text reference sent with the payment. Max 35 characters."},"destination_bank_account":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["iban"]},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}},"required":["bank_name","account_holder_type","account_holder_address","account_type","iban"]},{"title":"US Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["us"]},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}},"required":["bank_name","account_holder_type","account_holder_address","account_type","us"]},{"title":"International Wire Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["international_wire"]},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}},"required":["account_number","routing_number","bic"]}},"required":["id","created_at","bank_name","account_holder_type","account_holder_address","account_type","international_wire"]}]},"quote":{"type":"object","properties":{"deposit_network":{"type":"string","description":"The blockchain network for the deposit","enum":["polygon","ethereum","tron","base","arbitrum","solana"]},"deposit_token":{"type":"string","description":"The token used for the deposit","enum":["usdc","usdt","eurc"]},"deposit_blockchain_address":{"type":"string","description":"The blockchain address where the funds should be deposited"},"deposit_amount":{"type":"string","description":"The amount to be deposited"},"source_amount":{"type":"string","description":"The source amount for the transfer"},"destination_amount":{"type":"string","description":"The destination amount for the transfer"},"exchange_rate":{"type":"string","description":"The exchange rate used for the transfer","pattern":"^[0-9]+(\\.[0-9]+)?$"},"fee_amount":{"type":"string","description":"The total fee amount for the onramp transfer, denominated in the deposit_currency"},"deposit_transaction_hash":{"type":"string","description":"The transaction hash of the completed deposit","nullable":true}}}}}}}}
```


# Get Offramp Transfer

## GET /v0/customers/{customer\_id}/offramp-transfer/{transfer\_id}

> Get Offramp Transfer

```json
{"openapi":"3.0.0","info":{"title":"Offramp API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/offramp-transfer/{transfer_id}":{"get":{"summary":"Get Offramp Transfer","parameters":[{"name":"transfer_id","in":"path","description":"The unique identifier of the cross-chain transfer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get offramp transfer response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOfframpResponseSuccessModel"}}}}}}}},"components":{"schemas":{"CreateOfframpResponseSuccessModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the offramp transfer"},"status":{"type":"string","description":"The current status of the offramp transfer","enum":["pending","processing","completed"]},"amount":{"type":"string","format":"decimal","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The destination amount of the offramp transfer as a numeric string."},"source_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt"]},"source_network":{"type":"string","description":"The blockchain network for the source token","enum":["polygon","ethereum","base","tron","arbitrum","solana"]},"destination_currency":{"type":"string","description":"The currency for the destination","enum":["usd","eur","aed"]},"destination_payment_rails":{"type":"string","description":"The rails type to be used for the bank transfer","enum":["ach","wire","sepa","swift","uaefts"]},"transfer_purpose":{"type":"string","description":"The purpose of the transfer","enum":["charity","commercial_investment","corporate_card","credit_card","dividend","family","financial_services","good_sold","goods_bought","government","insurance","intergroup_transfer","intra_group_dividends","information_technology","leasing","loan_charges","merchant_settlement","mobile_wallet","none","non_resident_transfer_between_accounts","pension","personal_expenses","prepaid_cards","professional","rental","resident_transfer_between_accounts","salaries","telecommunications","travel","utility_bill"]},"payment_reference":{"type":"string","maxLength":35,"description":"Free-text reference sent with the payment. Max 35 characters."},"destination_bank_account":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["iban"]},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}},"required":["bank_name","account_holder_type","account_holder_address","account_type","iban"]},{"title":"US Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["us"]},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}},"required":["bank_name","account_holder_type","account_holder_address","account_type","us"]},{"title":"International Wire Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["international_wire"]},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}},"required":["account_number","routing_number","bic"]}},"required":["id","created_at","bank_name","account_holder_type","account_holder_address","account_type","international_wire"]}]},"quote":{"type":"object","properties":{"deposit_network":{"type":"string","description":"The blockchain network for the deposit","enum":["polygon","ethereum","tron","base","arbitrum","solana"]},"deposit_token":{"type":"string","description":"The token used for the deposit","enum":["usdc","usdt","eurc"]},"deposit_blockchain_address":{"type":"string","description":"The blockchain address where the funds should be deposited"},"deposit_amount":{"type":"string","description":"The amount to be deposited"},"source_amount":{"type":"string","description":"The source amount for the transfer"},"destination_amount":{"type":"string","description":"The destination amount for the transfer"},"exchange_rate":{"type":"string","description":"The exchange rate used for the transfer","pattern":"^[0-9]+(\\.[0-9]+)?$"},"fee_amount":{"type":"string","description":"The total fee amount for the onramp transfer, denominated in the deposit_currency"},"deposit_transaction_hash":{"type":"string","description":"The transaction hash of the completed deposit","nullable":true}}}}}}}}
```


# Get All Offramp Transfers

## GET /v0/customers/{customer\_id}/offramp-transfer

> Get All Offramp Transfers

```json
{"openapi":"3.0.0","info":{"title":"Offramp API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/offramp-transfer":{"get":{"summary":"Get All Offramp Transfers","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of records to return","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"skip","in":"query","description":"Number of records to skip","required":false,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Successful retrieval of offramp transfers list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAllOfframpTransfersResponseModel"}}}}}}}},"components":{"schemas":{"GetAllOfframpTransfersResponseModel":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the offramp transfer"},"status":{"type":"string","description":"The current status of the offramp transfer","enum":["pending","processing","completed","refunded"]},"amount":{"type":"string","format":"decimal","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of the offramp transfer as a numeric string"},"source_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt"]},"source_network":{"type":"string","description":"The blockchain network for the source token","enum":["polygon","ethereum","tron","base","arbitrum","solana"]},"destination_currency":{"type":"string","description":"The currency for the destination","enum":["usd","eur"]},"destination_bank_account":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_type":{"type":"string","enum":["iban"]},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}},"required":["bank_name","account_holder_type","account_type","iban"]},{"title":"US Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_type":{"type":"string","enum":["us"]},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}},"required":["bank_name","account_holder_type","account_type","us"]},{"title":"International Wire Account Details","properties":{"bank_name":{"type":"string"},"account_holder_type":{"type":"string","enum":["individual","business"]},"account_holder_first_name":{"type":"string"},"account_holder_last_name":{"type":"string"},"account_holder_business_name":{"type":"string"},"account_holder_address":{"type":"object","properties":{"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code","minLength":2,"maxLength":2},"city":{"type":"string","minLength":1,"maxLength":128},"street_line_1":{"minLength":1,"type":"string","maxLength":255},"postal_code":{"minLength":1,"type":"string","maxLength":48}},"required":["country","city","street_line_1","postal_code"]},"account_type":{"type":"string","enum":["international_wire"]},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}},"required":["account_number","routing_number","bic"]}},"required":["id","created_at","bank_name","account_holder_type","account_holder_address","account_type","international_wire"]}]}}}}},"required":["items"]}}}}
```


# Simulate (Sandbox)

## POST /v0/customers/{customer\_id}/offramp-transfer/simulate

> Simulate Offramp Transfer Actions

```json
{"openapi":"3.0.0","info":{"title":"Offramp API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/offramp-transfer/simulate":{"post":{"summary":"Simulate Offramp Transfer Actions","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["action","transfer_id"],"properties":{"action":{"type":"string","enum":["complete_transfer"],"description":"The action to simulate"},"transfer_id":{"type":"string","format":"uuid","description":"The ID of the transfer to simulate action on"}}}}}},"responses":{"200":{"description":"Successful simulation response","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"A message describing the result of the simulation"}}}}}}}}}}}
```


# Onramp Transfers

{% openapi src="/files/Oj0UhkKnC7esd2ILyBKc" path="/v0/customers/{customer\_id}/onramp-transfer" method="post" %}
[Broken mention](broken://files/Oj0UhkKnC7esd2ILyBKc)
{% endopenapi %}


# Create Quote

## POST /v0/customers/{customer\_id}/onramp-transfer/quote

> Create Onramp Transfer Quote

```json
{"openapi":"3.0.0","info":{"title":"Onramp API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key"}}},"paths":{"/v0/customers/{customer_id}/onramp-transfer/quote":{"post":{"summary":"Create Onramp Transfer Quote","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["source_currency","source_payment_rails","destination_token","destination_network"],"oneOf":[{"title":"By Source Amount","properties":{"source_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of fiat currency to onramp (required when calculating quote from source to destination)"},"source_payment_rails":{"type":"string","enum":["ach","wire","sepa","uaefts","swift"],"description":"The payment rails to use for fiat transfer"},"source_currency":{"type":"string","enum":["usd","eur","aed"],"description":"The fiat currency to onramp"},"destination_token":{"type":"string","enum":["usdc","usdt","eurc"],"description":"The token to receive"},"destination_network":{"type":"string","enum":["polygon","ethereum","solana","base","tron"],"description":"The blockchain network for the destination token"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the quote"}}},{"title":"By Destination Amount","properties":{"source_payment_rails":{"type":"string","enum":["ach","wire","sepa","uaefts","swift"],"description":"The payment rails to use for fiat transfer"},"source_currency":{"type":"string","enum":["usd","eur","aed"],"description":"The fiat currency to onramp"},"destination_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of tokens to receive (required when calculating quote from destination to source)"},"destination_token":{"type":"string","enum":["usdc","usdt","eurc"],"description":"The token to receive"},"destination_network":{"type":"string","enum":["polygon","ethereum","solana","base","tron"],"description":"The blockchain network for the destination token"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the quote"}}}],"description":"Either source_amount OR destination_amount must be provided to calculate the quote in the desired direction"}}}},"responses":{"201":{"description":"Quote created successfully","content":{"application/json":{"schema":{"type":"object","required":["quote_id","source_amount","source_currency","source_payment_rails","destination_token","destination_network","destination_amount","exchange_rate","fee_amount","expire_at"],"properties":{"quote_id":{"type":"string","format":"uuid"},"source_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"source_currency":{"type":"string","enum":["usd","eur","aed"]},"source_payment_rails":{"type":"string","enum":["ach","wire","sepa","uaefts","swift"]},"destination_token":{"type":"string","enum":["usdc","usdt","eurc"]},"destination_network":{"type":"string","enum":["polygon","ethereum","solana","base","tron"]},"destination_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"fee_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"exchange_rate":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"expire_at":{"type":"string","format":"date-time","description":"UTC timestamp after which the quote can no longer be used to create a transfer"}}}}}}}}}}}
```


# Create Transfer From Quote

## Create Onramp Transfer from Quote

> Creates onramp transfer using an existing quote

```json
{"openapi":"3.0.0","info":{"title":"Onramp API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key"}},"schemas":{"CreateOnrampResponseSuccessModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the onramp transfer"},"status":{"type":"string","description":"The current status of the onramp transfer","enum":["pending","processing","completed"]},"amount":{"type":"string","format":"decimal","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of the onramp transfer as a numeric string"},"source_currency":{"type":"string","description":"The currency to be deposited","enum":["usd","eur"]},"source_rails":{"type":"string","description":"The deposit rails to be used for the transaction","enum":["ach","sepa","wire"]},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","solana","base"]},"destination_token":{"type":"string","description":"The token for the destination","enum":["usdc","usdt"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"destination_tx_hash":{"type":"string","description":"The blockchain transaction hash of the destination withdrawal"},"quote":{"type":"object","properties":{"deposit_rails":{"type":"string","description":"The deposit rails to be used for the transaction","enum":["ach","sepa","wire"]},"deposit_currency":{"type":"string","description":"The currency used for the deposit","enum":["usd","eur"]},"deposit_bank_account":{"type":"object","properties":{"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_type":{"type":"string","enum":["individual","business"]},"account_beneficiary_name":{"type":"string"},"account_type":{"type":"string","enum":["us","iban","international_wire"]}},"oneOf":[{"title":"IBAN Account Details","properties":{"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}}},{"title":"US Account Details","properties":{"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}}},{"title":"International Wire Account Details","properties":{"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}}}}}]},"deposit_amount":{"type":"string","description":"The amount to be deposited"},"deposit_message":{"type":"string","description":"The reference for the deposit that should be included with the bank transfer"},"fee_amount":{"type":"string","description":"The total fee amount for the onramp transfer, denominated in the deposit_currency"}}},"received_deposit":{"type":"object","description":"The actual settled deposit that funded this transfer. Present only once a deposit has been received.","properties":{"remitter":{"type":"object","description":"The party that sent the deposit","properties":{"name":{"type":"string"}}},"payment_reference":{"type":"string","description":"The reference the sender included on the incoming payment (distinct from quote.deposit_message, which is the reference we instruct the sender to use)"}}}}}}},"paths":{"/v0/customers/{customer_id}/onramp-transfer/quote/{quote_id}":{"post":{"summary":"Create Onramp Transfer from Quote","description":"Creates onramp transfer using an existing quote","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"quote_id","in":"path","description":"The unique identifier of the quote","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["destination_address"],"properties":{"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"}}}}}},"responses":{"201":{"description":"Successful onramp transfer initiation response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOnrampResponseSuccessModel"}}}},"400":{"description":"The quote can no longer be used to create a transfer. Possible reasons:\n- `Quote has expired` — the quote is past its `expire_at` window\n- `Quote has already been used for a transfer` — the quote was already consumed\n- `Quote not found`\n","content":{"application/json":{"schema":{"type":"string"}}}}}}}}}
```


# Get Onramp Transfer

## GET /v0/customers/{customer\_id}/onramp-transfer/{transfer\_id}

> Get Onramp Transfer

```json
{"openapi":"3.0.0","info":{"title":"Onramp API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key"}},"schemas":{"CreateOnrampResponseSuccessModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the onramp transfer"},"status":{"type":"string","description":"The current status of the onramp transfer","enum":["pending","processing","completed"]},"amount":{"type":"string","format":"decimal","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of the onramp transfer as a numeric string"},"source_currency":{"type":"string","description":"The currency to be deposited","enum":["usd","eur"]},"source_rails":{"type":"string","description":"The deposit rails to be used for the transaction","enum":["ach","sepa","wire"]},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","solana","base"]},"destination_token":{"type":"string","description":"The token for the destination","enum":["usdc","usdt"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"destination_tx_hash":{"type":"string","description":"The blockchain transaction hash of the destination withdrawal"},"quote":{"type":"object","properties":{"deposit_rails":{"type":"string","description":"The deposit rails to be used for the transaction","enum":["ach","sepa","wire"]},"deposit_currency":{"type":"string","description":"The currency used for the deposit","enum":["usd","eur"]},"deposit_bank_account":{"type":"object","properties":{"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_type":{"type":"string","enum":["individual","business"]},"account_beneficiary_name":{"type":"string"},"account_type":{"type":"string","enum":["us","iban","international_wire"]}},"oneOf":[{"title":"IBAN Account Details","properties":{"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}}},{"title":"US Account Details","properties":{"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}}},{"title":"International Wire Account Details","properties":{"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}}}}}]},"deposit_amount":{"type":"string","description":"The amount to be deposited"},"deposit_message":{"type":"string","description":"The reference for the deposit that should be included with the bank transfer"},"fee_amount":{"type":"string","description":"The total fee amount for the onramp transfer, denominated in the deposit_currency"}}},"received_deposit":{"type":"object","description":"The actual settled deposit that funded this transfer. Present only once a deposit has been received.","properties":{"remitter":{"type":"object","description":"The party that sent the deposit","properties":{"name":{"type":"string"}}},"payment_reference":{"type":"string","description":"The reference the sender included on the incoming payment (distinct from quote.deposit_message, which is the reference we instruct the sender to use)"}}}}}}},"paths":{"/v0/customers/{customer_id}/onramp-transfer/{transfer_id}":{"get":{"summary":"Get Onramp Transfer","parameters":[{"name":"transfer_id","in":"path","description":"The unique identifier of the cross-chain transfer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Get onramp transfer response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOnrampResponseSuccessModel"}}}}}}}}}
```


# Get All Onramp Transfers

## GET /v0/customers/{customer\_id}/onramp-transfer

> Get All Onramp Transfers

```json
{"openapi":"3.0.0","info":{"title":"Onramp API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key"}},"schemas":{"GetAllOnrampTransfersResponseModel":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the onramp transfer"},"status":{"type":"string","description":"The current status of the onramp transfer","enum":["pending","processing","completed"]},"amount":{"type":"string","format":"decimal","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of the onramp transfer as a numeric string"},"source_currency":{"type":"string","description":"The currency to be deposited","enum":["usd","eur"]},"source_rails":{"type":"string","description":"The deposit rails to be used for the transaction","enum":["ach","sepa","wire"]},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","solana"]},"destination_token":{"type":"string","description":"The token for the destination","enum":["usdc","usdt"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"destination_tx_hash":{"type":"string","description":"The blockchain transaction hash of the destination withdrawal"},"quote":{"type":"object","properties":{"deposit_rails":{"type":"string","description":"The deposit rails to be used for the transaction","enum":["ach","sepa","wire"]},"deposit_currency":{"type":"string","description":"The currency used for the deposit","enum":["usd","eur"]},"deposit_bank_account":{"type":"object","properties":{"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_type":{"type":"string","enum":["individual","business"]},"account_beneficiary_name":{"type":"string"},"account_type":{"type":"string","enum":["us","iban"]}},"oneOf":[{"title":"IBAN Account Details","properties":{"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}}},{"title":"US Account Details","properties":{"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}}}]},"deposit_amount":{"type":"string","description":"The amount to be deposited"},"deposit_message":{"type":"string","description":"The reference for the deposit that should be included with the bank transfer"},"fee_amount":{"type":"string","description":"The total fee amount for the onramp transfer, denominated in the deposit_currency"}}},"received_deposit":{"type":"object","description":"The actual settled deposit that funded this transfer. Present only once a deposit has been received.","properties":{"remitter":{"type":"object","description":"The party that sent the deposit","properties":{"name":{"type":"string"}}},"payment_reference":{"type":"string","description":"The reference the sender included on the incoming payment (distinct from quote.deposit_message, which is the reference we instruct the sender to use)"}}}}}}}}}},"paths":{"/v0/customers/{customer_id}/onramp-transfer":{"get":{"summary":"Get All Onramp Transfers","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Maximum number of records to return","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"skip","in":"query","description":"Number of records to skip","required":false,"schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Successful retrieval of onramp transfers list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAllOnrampTransfersResponseModel"}}}}}}}}}
```


# Simulate (Sandbox)

## POST /v0/customers/{customer\_id}/onramp-transfer/simulate

> Simulate Onramp Transfer Actions

```json
{"openapi":"3.0.0","info":{"title":"Onramp API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key"}}},"paths":{"/v0/customers/{customer_id}/onramp-transfer/simulate":{"post":{"summary":"Simulate Onramp Transfer Actions","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["action","transfer_id"],"properties":{"action":{"type":"string","enum":["complete_transfer"],"description":"The action to simulate"},"transfer_id":{"type":"string","format":"uuid","description":"The ID of the transfer to simulate action on"},"simulation_overrides":{"type":"object","description":"Optional overrides for simulation","properties":{"deposit_source":{"type":"object","required":["virtual_account_id"],"properties":{"virtual_account_id":{"type":"string","format":"uuid","description":"The virtual account ID to use as deposit source"}}}}}}}}}},"responses":{"200":{"description":"Successful simulation response","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"A message describing the result of the simulation"}}}}}}}}}}}
```


# Cross Chain Transfers


# Create Quote

## POST /v0/customers/{customer\_id}/cross-chain-transfer/quote

> Create Cross-Chain Transfer Quote

```json
{"openapi":"3.0.0","info":{"title":"Cross Chain Transfers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/cross-chain-transfer/quote":{"post":{"summary":"Create Cross-Chain Transfer Quote","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","description":"Unique key to prevent duplicate requests","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["source_token","source_network","destination_token","destination_network"],"oneOf":[{"title":"By Source Amount","properties":{"source_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of source token to transfer (required when calculating quote from source to destination)"},"source_token":{"type":"string","enum":["usdc","usdt","eurc"],"description":"The token to transfer from"},"source_network":{"type":"string","enum":["polygon","ethereum","solana","base","arbitrum","tron"],"description":"The blockchain network for the source token"},"destination_token":{"type":"string","enum":["usdc","usdt","eurc"],"description":"The token to transfer to"},"destination_network":{"type":"string","enum":["polygon","ethereum","solana","base","arbitrum","tron"],"description":"The blockchain network for the destination token"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the quote"}}},{"title":"By Destination Amount","properties":{"source_token":{"type":"string","enum":["usdc","usdt","eurc"],"description":"The token to transfer from"},"source_network":{"type":"string","enum":["polygon","ethereum","solana","base","arbitrum","tron"],"description":"The blockchain network for the source token"},"destination_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of destination token to receive (required when calculating quote from destination to source)"},"destination_token":{"type":"string","enum":["usdc","usdt","eurc"],"description":"The token to transfer to"},"destination_network":{"type":"string","enum":["polygon","ethereum","solana","base","arbitrum","tron"],"description":"The blockchain network for the destination token"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the quote"}}}],"description":"Either source_amount OR destination_amount must be provided to calculate the quote in the desired direction"}}}},"responses":{"201":{"description":"Quote created successfully","content":{"application/json":{"schema":{"type":"object","required":["quote_id","source_amount","source_token","source_network","destination_token","destination_network","destination_amount","exchange_rate","expire_at"],"properties":{"quote_id":{"type":"string","format":"uuid"},"source_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"source_token":{"type":"string","enum":["usdc","usdt","eurc"]},"source_network":{"type":"string","enum":["polygon","ethereum","solana","base","arbitrum","tron"]},"destination_token":{"type":"string","enum":["usdc","usdt","eurc"]},"destination_network":{"type":"string","enum":["polygon","ethereum","solana","base","arbitrum","tron"]},"destination_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"fee_amount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The total fee amount for the cross-chain transfer, denominated in the source token"},"exchange_rate":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$"},"expire_at":{"type":"string","format":"date-time","description":"UTC timestamp after which the quote can no longer be used to create a transfer"}}}}}}}}}}}
```


# Create Cross-Chain Transfer From Quote

## POST /v0/customers/{customer\_id}/cross-chain-transfer/quote/{quote\_id}

> Create Cross-Chain Transfer from Quote

```json
{"openapi":"3.0.0","info":{"title":"Cross Chain Transfers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/cross-chain-transfer/quote/{quote_id}":{"post":{"summary":"Create Cross-Chain Transfer from Quote","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"quote_id","in":"path","description":"The unique identifier of the quote to use for the transfer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["destination_address"],"properties":{"destination_address":{"type":"string","description":"The destination address where the tokens will be sent"}}}}}},"responses":{"200":{"description":"Successful creation of Cross-Chain Transfer from quote","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossChainTransferModel"}}}},"400":{"description":"The quote can no longer be used to create a transfer. Possible reasons:\n- `Quote has expired` — the quote is past its `expire_at` window\n- `Quote has already been used for a transfer` — the quote was already consumed\n","content":{"application/json":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"CrossChainTransferModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the cross-chain transfer"},"status":{"type":"string","description":"The current status of the cross-chain transfer","enum":["pending","processing","completed"]},"amount":{"type":"string","format":"decimal","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of the cross-chain transfer as a numeric string"},"source_network":{"type":"string","description":"The blockchain network for the source","enum":["polygon","ethereum","tron","solana"]},"source_token":{"type":"string","description":"The token for the source","enum":["usdc","usdt"]},"source_address":{"type":"string","description":"The blockchain address from which the funds will be sent","nullable":true},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","tron","solana"]},"destination_token":{"type":"string","description":"The token for the destination","enum":["usdc","usdt"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"quote":{"type":"object","properties":{"deposit_token":{"type":"string","description":"The token used for the deposit","enum":["usdc","usdt"]},"deposit_address":{"type":"string","description":"The blockchain address where the deposit should be made"},"deposit_network":{"type":"string","description":"The blockchain network for the deposit","enum":["polygon","ethereum","tron","solana"]},"deposit_amount":{"type":"string","description":"The amount to be deposited"},"fee_amount":{"type":"string","description":"The total fee amount for the cross-chain transfer, denominated in the deposit_token currency"}}}}}}}}
```


# Complete Cross-Chain Transfer

## POST /v0/customers/{customer\_id}/cross-chain-transfer/{transfer\_id}/complete

> Finalize Cross-Chain Transfer: Confirm Customer Deposit and Initiate Transfer Process

```json
{"openapi":"3.0.0","info":{"title":"Cross Chain Transfers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/cross-chain-transfer/{transfer_id}/complete":{"post":{"summary":"Finalize Cross-Chain Transfer: Confirm Customer Deposit and Initiate Transfer Process","parameters":[{"name":"transfer_id","in":"path","description":"The unique identifier of the cross-chain transfer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmCrossChainTransferBodyModel"}}}},"responses":{"200":{"description":"Successful completion of Cross-Chain Transfer","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossChainTransferModel"}}}}}}}},"components":{"schemas":{"ConfirmCrossChainTransferBodyModel":{"type":"object","properties":{"deposit_transaction_hash":{"type":"string","description":"The transaction hash of the deposit transaction"}},"required":["deposit_transaction_hash"]},"CrossChainTransferModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the cross-chain transfer"},"status":{"type":"string","description":"The current status of the cross-chain transfer","enum":["pending","processing","completed"]},"amount":{"type":"string","format":"decimal","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of the cross-chain transfer as a numeric string"},"source_network":{"type":"string","description":"The blockchain network for the source","enum":["polygon","ethereum","tron","solana"]},"source_token":{"type":"string","description":"The token for the source","enum":["usdc","usdt"]},"source_address":{"type":"string","description":"The blockchain address from which the funds will be sent","nullable":true},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","tron","solana"]},"destination_token":{"type":"string","description":"The token for the destination","enum":["usdc","usdt"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"quote":{"type":"object","properties":{"deposit_token":{"type":"string","description":"The token used for the deposit","enum":["usdc","usdt"]},"deposit_address":{"type":"string","description":"The blockchain address where the deposit should be made"},"deposit_network":{"type":"string","description":"The blockchain network for the deposit","enum":["polygon","ethereum","tron","solana"]},"deposit_amount":{"type":"string","description":"The amount to be deposited"},"fee_amount":{"type":"string","description":"The total fee amount for the cross-chain transfer, denominated in the deposit_token currency"}}}}}}}}
```


# Get Cross-Chain Transfer

## GET /v0/customers/{customer\_id}/cross-chain-transfer/{transfer\_id}

> Retrieve details of a specific Cross-Chain Transfer

```json
{"openapi":"3.0.0","info":{"title":"Cross Chain Transfers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/cross-chain-transfer/{transfer_id}":{"get":{"summary":"Retrieve details of a specific Cross-Chain Transfer","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"transfer_id","in":"path","description":"The unique identifier of the cross-chain transfer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful retrieval of Cross-Chain Transfer details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossChainTransferModel"}}}},"404":{"description":"Cross-Chain Transfer not found"}}}}},"components":{"schemas":{"CrossChainTransferModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the cross-chain transfer"},"status":{"type":"string","description":"The current status of the cross-chain transfer","enum":["pending","processing","completed"]},"amount":{"type":"string","format":"decimal","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"The amount of the cross-chain transfer as a numeric string"},"source_network":{"type":"string","description":"The blockchain network for the source","enum":["polygon","ethereum","tron","solana"]},"source_token":{"type":"string","description":"The token for the source","enum":["usdc","usdt"]},"source_address":{"type":"string","description":"The blockchain address from which the funds will be sent","nullable":true},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","tron","solana"]},"destination_token":{"type":"string","description":"The token for the destination","enum":["usdc","usdt"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"quote":{"type":"object","properties":{"deposit_token":{"type":"string","description":"The token used for the deposit","enum":["usdc","usdt"]},"deposit_address":{"type":"string","description":"The blockchain address where the deposit should be made"},"deposit_network":{"type":"string","description":"The blockchain network for the deposit","enum":["polygon","ethereum","tron","solana"]},"deposit_amount":{"type":"string","description":"The amount to be deposited"},"fee_amount":{"type":"string","description":"The total fee amount for the cross-chain transfer, denominated in the deposit_token currency"}}}}}}}}
```


# Create Permanent Route Address

## POST /v0/customers/{customer\_id}/cross-chain-transfer/permanent-route-address

> Generate a personalized address for Cross-Chain Transfers

```json
{"openapi":"3.0.0","info":{"title":"Cross Chain Transfers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/cross-chain-transfer/permanent-route-address":{"post":{"summary":"Generate a personalized address for Cross-Chain Transfers","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePermanentRouteAddressRequestBodyModel"}}}},"responses":{"200":{"description":"Successful retrieval of liquidation address","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermanentRouteAddressModel"}}}}}}}},"components":{"schemas":{"CreatePermanentRouteAddressRequestBodyModel":{"type":"object","properties":{"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum"]},"destination_token":{"type":"string","description":"The token for the destination.<br>\n<strong>Note:</strong> Base network only supports <strong>usdc</strong>, while Tron network only supports <strong>usdt</strong>\n","enum":["usdc","usdt"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"}},"required":["destination_network","destination_token","destination_address"]},"PermanentRouteAddressModel":{"type":"object","properties":{"permanent_route_address_id":{"type":"string","format":"uuid","description":"The unique identifier for the permanent route address"},"route_chain_addresses":{"type":"object","properties":{"ethereum":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on EVM-compatible chains"}}},"base":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on EVM-compatible chains"}}},"polygon":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on EVM-compatible chains"}}},"tron":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on TRON network"}}},"solana":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on Solana network"}}}}},"route_destination":{"type":"object","properties":{"network":{"type":"string","description":"The blockchain network for the destination"},"token":{"type":"string","description":"The token for the destination","enum":["usdc","usdt"]},"address":{"type":"string","description":"The blockchain address where the funds will be sent"}}}}}}}}
```


# Get Permanent Route Address

## GET /v0/customers/{customer\_id}/cross-chain-transfer/permanent-route-address/{address\_id}

> Get a permanent route address by ID

```json
{"openapi":"3.0.0","info":{"title":"Cross Chain Transfers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/cross-chain-transfer/permanent-route-address/{address_id}":{"get":{"summary":"Get a permanent route address by ID","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"address_id","in":"path","description":"The unique identifier of the permanent route address","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful retrieval of permanent route address","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermanentRouteAddressModel"}}}}}}}},"components":{"schemas":{"PermanentRouteAddressModel":{"type":"object","properties":{"permanent_route_address_id":{"type":"string","format":"uuid","description":"The unique identifier for the permanent route address"},"route_chain_addresses":{"type":"object","properties":{"ethereum":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on EVM-compatible chains"}}},"base":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on EVM-compatible chains"}}},"polygon":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on EVM-compatible chains"}}},"tron":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on TRON network"}}},"solana":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on Solana network"}}}}},"route_destination":{"type":"object","properties":{"network":{"type":"string","description":"The blockchain network for the destination"},"token":{"type":"string","description":"The token for the destination","enum":["usdc","usdt"]},"address":{"type":"string","description":"The blockchain address where the funds will be sent"}}}}}}}}
```


# Get All Permanent Route Addresses

## GET /v0/customers/{customer\_id}/cross-chain-transfer/permanent-route-address/list

> List all permanent route addresses for a customer

```json
{"openapi":"3.0.0","info":{"title":"Cross Chain Transfers API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/cross-chain-transfer/permanent-route-address/list":{"get":{"summary":"List all permanent route addresses for a customer","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful retrieval of all permanent route addresses","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PermanentRouteAddressModel"}}}}}}}}}}},"components":{"schemas":{"PermanentRouteAddressModel":{"type":"object","properties":{"permanent_route_address_id":{"type":"string","format":"uuid","description":"The unique identifier for the permanent route address"},"route_chain_addresses":{"type":"object","properties":{"ethereum":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on EVM-compatible chains"}}},"base":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on EVM-compatible chains"}}},"polygon":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on EVM-compatible chains"}}},"tron":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on TRON network"}}},"solana":{"type":"object","properties":{"address":{"type":"string","description":"The permanent route address for the customer on Solana network"}}}}},"route_destination":{"type":"object","properties":{"network":{"type":"string","description":"The blockchain network for the destination"},"token":{"type":"string","description":"The token for the destination","enum":["usdc","usdt"]},"address":{"type":"string","description":"The blockchain address where the funds will be sent"}}}}}}}}
```


# Developer


# Get Developer Fees

## Get Developer Fees

## GET /v0/developer/fees

> Get developer fee settings

```json
{"openapi":"3.0.0","info":{"title":"Developer API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/developer/fees":{"get":{"summary":"Get developer fee settings","parameters":[{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Developer fee settings retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeveloperFees"}}}}}}}},"components":{"schemas":{"DeveloperFees":{"type":"object","properties":{"developer_receivable_fees":{"type":"array","items":{"type":"object","properties":{"service_type":{"type":"string","enum":["onramp","offramp","cross_chain_transfer"],"description":"Type of money movement service"},"accrual_basis":{"type":"string","enum":["percentage"],"description":"How the fee is calculated"},"value":{"type":"number","format":"float","description":"Fee percentage value"}},"required":["service_type","accrual_basis","value"]}}}}}}}
```


# Update Developer Fees

## PUT /v0/developer/fees

> Update developer fee settings

```json
{"openapi":"3.0.0","info":{"title":"Developer API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/developer/fees":{"put":{"summary":"Update developer fee settings","parameters":[{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeveloperFees"}}}},"responses":{"200":{"description":"Developer fee settings updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeveloperFees"}}}}}}}},"components":{"schemas":{"UpdateDeveloperFees":{"type":"object","properties":{"developer_receivable_fees":{"type":"object","properties":{"onramp":{"type":"number","format":"float","description":"Fee percentage for onramp transactions"},"offramp":{"type":"number","format":"float","description":"Fee percentage for offramp transactions"},"cross_chain_transfer":{"type":"number","format":"float","description":"Fee percentage for cross chain transfers"}}}}},"DeveloperFees":{"type":"object","properties":{"developer_receivable_fees":{"type":"array","items":{"type":"object","properties":{"service_type":{"type":"string","enum":["onramp","offramp","cross_chain_transfer"],"description":"Type of money movement service"},"accrual_basis":{"type":"string","enum":["percentage"],"description":"How the fee is calculated"},"value":{"type":"number","format":"float","description":"Fee percentage value"}},"required":["service_type","accrual_basis","value"]}}}}}}}
```


# Files


# Upload File

## POST /v0/files

> Upload a file

```json
{"openapi":"3.0.0","info":{"title":"Files API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key"}},"schemas":{"FileUploadResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the uploaded file"},"name":{"type":"string","description":"Original filename"},"type":{"type":"string","description":"Content type of the file"}}}}},"paths":{"/v0/files":{"post":{"summary":"Upload a file","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"File to upload"}},"required":["file"]}}}},"responses":{"200":{"description":"File uploaded successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileUploadResponse"}}}}}}}}}
```


# Virtual Accounts

### Virtual Accounts API Documentation

This documentation covers the use of Virtual Accounts. A virtual account functions like an IBAN or ACH bank account; when a customer deposits money, it is automatically routed to the associated wallet address.\
\
Available Accounts:

* USD - ACH & FedWire
* USD - SWIFT
* AED - IPP & UAEFTS
* EUR - SEPA & SEPA Instant
* GBP - Faster Payments (coming soon)

⚠️ **Important:** Please strictly adhere to the deposit instructions provided. Failure to do so may result in funds being delayed or stuck.


# Create Virtual Account

Create Virtual Account

## Create new Virtual Account

> Creates Virtual Account and returns deposit information

```json
{"openapi":"3.0.0","info":{"title":"Virtual Accounts API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/virtual-account":{"post":{"summary":"Create new Virtual Account","description":"Creates Virtual Account and returns deposit information","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVABodyModel"}}}},"responses":{"201":{"description":"Successful offramp transfer initiation response (synchronous)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVAResponseSuccessModel"}}}},"202":{"description":"Virtual account creation accepted (asynchronous). This response is returned for AED and USD SWIFT virtual accounts. The virtual account will be created asynchronously and you can fetch the details later via the GET /v0/customers/{customer_id}/virtual-account endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the virtual account"},"status":{"type":"string","enum":["pending"],"description":"The current status of the virtual account"}},"required":["id","status"]}}}},"409":{"description":"Conflict — a virtual account with identical parameters (source_currency, source_rails, destination_token, destination_network, destination_address) already exists for this customer","content":{"application/json":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"CreateVABodyModel":{"type":"object","properties":{"source_currency":{"type":"string","description":"The currency for the source","enum":["usd","eur","aed"]},"source_rails":{"type":"string","description":"Required only for USD in case you want to accept SWIFT payments","enum":["swift"]},"destination_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt","eurc"]},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","solana","base","tron","arbitrum"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the Virtual Account"}},"required":["source_currency","dstination_token","destination_network","destination_currency","destination_bank_account","destination_payment_rails"]},"CreateVAResponseSuccessModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the virtual account"},"status":{"type":"string","description":"The current status of the virtual account","enum":["active"]},"destination_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt","aed"]},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","solana","base","tron","arbitrum"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the Virtual Account"},"deposit_instructions":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["sepa"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["eur"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_holder_name":{"type":"string"},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}}},{"title":"US Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["ach","wire"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["usd"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_name":{"type":"string"},"account_beneficiary_address":{"type":"string"},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}}},{"title":"International Wire Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["swift"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["usd"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_name":{"type":"string"},"account_beneficiary_address":{"type":"string"},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}}}}}]}}}}}}
```


# Get Virtual Account

## Get Virtual Account

> Returns Virtual Account deposit information

```json
{"openapi":"3.0.0","info":{"title":"Virtual Accounts API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/virtual-account/{virtual_account_id}":{"get":{"summary":"Get Virtual Account","description":"Returns Virtual Account deposit information","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string"}},{"name":"virtual_account_id","in":"path","description":"The unique identifier of the virtual account","required":true,"schema":{"type":"string"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful virtual account retrieval","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/CreateVAResponseSuccessModel"},{"type":"object","description":"Partial response for virtual accounts still being provisioned asynchronously","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["pending"]}},"required":["id","status"]}]}}}}}}}},"components":{"schemas":{"CreateVAResponseSuccessModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the virtual account"},"status":{"type":"string","description":"The current status of the virtual account","enum":["active"]},"destination_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt","aed"]},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","solana","base","tron","arbitrum"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the Virtual Account"},"deposit_instructions":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["sepa"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["eur"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_holder_name":{"type":"string"},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}}},{"title":"US Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["ach","wire"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["usd"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_name":{"type":"string"},"account_beneficiary_address":{"type":"string"},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}}},{"title":"International Wire Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["swift"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["usd"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_name":{"type":"string"},"account_beneficiary_address":{"type":"string"},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}}}}}]}}}}}}
```


# Update Virtual Account

## Update Virtual Account

> Updates the destination address and/or developer fee of an existing active virtual account

```json
{"openapi":"3.0.0","info":{"title":"Virtual Accounts API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/virtual-account/{virtual_account_id}":{"put":{"summary":"Update Virtual Account","description":"Updates the destination address and/or developer fee of an existing active virtual account","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string"}},{"name":"virtual_account_id","in":"path","description":"The unique identifier of the virtual account","required":true,"schema":{"type":"string"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVABodyModel"}}}},"responses":{"200":{"description":"Successfully updated virtual account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVAResponseSuccessModel"}}}},"400":{"description":"Bad request — invalid destination address format or virtual account is not active"},"404":{"description":"Virtual account not found"}}}}},"components":{"schemas":{"UpdateVABodyModel":{"type":"object","description":"At least one of the fields must be provided","properties":{"destination_address":{"type":"string","description":"The new blockchain address where the funds will be sent"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the Virtual Account"},"destination_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt","eurc"]}}},"CreateVAResponseSuccessModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the virtual account"},"status":{"type":"string","description":"The current status of the virtual account","enum":["active"]},"destination_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt","aed"]},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","solana","base","tron","arbitrum"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the Virtual Account"},"deposit_instructions":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["sepa"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["eur"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_holder_name":{"type":"string"},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}}},{"title":"US Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["ach","wire"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["usd"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_name":{"type":"string"},"account_beneficiary_address":{"type":"string"},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}}},{"title":"International Wire Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["swift"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["usd"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_name":{"type":"string"},"account_beneficiary_address":{"type":"string"},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}}}}}]}}}}}}
```


# Get All Virtual Accounts

## Get Virtual Accounts

> Returns list of Virtual Accounts for a customer

```json
{"openapi":"3.0.0","info":{"title":"Virtual Accounts API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/virtual-account":{"get":{"summary":"Get Virtual Accounts","description":"Returns list of Virtual Accounts for a customer","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful retrieval of virtual accounts","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/CreateVAResponseSuccessModel"},{"type":"object","description":"Partial response for virtual accounts still being provisioned asynchronously","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["pending"]}},"required":["id","status"]}]}}}}}}}}}}},"components":{"schemas":{"CreateVAResponseSuccessModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the virtual account"},"status":{"type":"string","description":"The current status of the virtual account","enum":["active"]},"destination_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt","aed"]},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","solana","base","tron","arbitrum"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the Virtual Account"},"deposit_instructions":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["sepa"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["eur"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_holder_name":{"type":"string"},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}}},{"title":"US Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["ach","wire"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["usd"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_name":{"type":"string"},"account_beneficiary_address":{"type":"string"},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}}},{"title":"International Wire Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["swift"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["usd"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_name":{"type":"string"},"account_beneficiary_address":{"type":"string"},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}}}}}]}}}}}}
```


# Get Virtual Account History

## Get Virtual Account History

> Returns Virtual Account transaction history

```json
{"openapi":"3.0.0","info":{"title":"Virtual Accounts API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customer_id}/virtual-account/{virtual_account_id}/history":{"get":{"summary":"Get Virtual Account History","description":"Returns Virtual Account transaction history","parameters":[{"name":"customer_id","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string"}},{"name":"virtual_account_id","in":"path","description":"The unique identifier of the virtual account","required":true,"schema":{"type":"string"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful virtual account history retrieval","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"event_type":{"type":"string","description":"The type of event","enum":["deposit_completed","withdrawal_completed","micro_deposit_completed"]},"source":{"type":"object","properties":{"amount":{"type":"string","description":"The amount of the transaction"},"currency":{"type":"string","description":"The currency of the transaction","enum":["usd","eur"]},"payment_rails":{"type":"string","description":"The payment rails used","enum":["ach","wire","sepa"]}},"required":["amount","currency","payment_rails"]},"destination":{"type":"object","properties":{"amount":{"type":"string","description":"The destination amount"}},"required":["amount"]},"created_at":{"type":"string","description":"The timestamp when the event was created","format":"date-time"}},"required":["event_type","created_at"]}}}}}}}}}}}}
```


# Simulate (Sandbox)

## Simulate Virtual Account Action

> Simulates actions on virtual accounts for testing purposes. This endpoint is only available in non-production environments.

```json
{"openapi":"3.0.0","info":{"title":"Virtual Accounts API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/customers/{customerId}/virtual-account/simulate":{"post":{"summary":"Simulate Virtual Account Action","description":"Simulates actions on virtual accounts for testing purposes. This endpoint is only available in non-production environments.","parameters":[{"name":"customerId","in":"path","description":"The unique identifier of the customer","required":true,"schema":{"type":"string"}},{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","enum":["issue_pending_virtual_account"],"description":"The action to perform"},"virtual_account_id":{"type":"string","format":"uuid","description":"The unique identifier of the virtual account to issue"}},"required":["action","virtual_account_id"]}}}},"responses":{"201":{"description":"Virtual account successfully issued","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVAResponseSuccessModel"}}}},"400":{"description":"Bad request - Invalid input or virtual account already active"},"403":{"description":"Forbidden - Not available in production environment"},"500":{"description":"Internal server error"}}}}},"components":{"schemas":{"CreateVAResponseSuccessModel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the virtual account"},"status":{"type":"string","description":"The current status of the virtual account","enum":["active"]},"destination_token":{"type":"string","description":"The currency to be deposited","enum":["usdc","usdt","aed"]},"destination_network":{"type":"string","description":"The blockchain network for the destination","enum":["polygon","ethereum","solana","base","tron","arbitrum"]},"destination_address":{"type":"string","description":"The blockchain address where the funds will be sent"},"developer_fee_percent":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Custom developer fee percentage for the Virtual Account"},"deposit_instructions":{"type":"object","oneOf":[{"title":"IBAN Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["sepa"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["eur"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_holder_name":{"type":"string"},"iban":{"type":"object","properties":{"bic":{"type":"string"},"iban_number":{"type":"string"}}}}},{"title":"US Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["ach","wire"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["usd"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_name":{"type":"string"},"account_beneficiary_address":{"type":"string"},"us":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"}}}}},{"title":"International Wire Account Details","properties":{"payment_rails":{"type":"array","description":"The available rails for deposits","items":{"type":"string","enum":["swift"]}},"currency":{"type":"string","description":"The currency used for the deposit","enum":["usd"]},"bank_name":{"type":"string"},"bank_address":{"type":"string"},"account_beneficiary_name":{"type":"string"},"account_beneficiary_address":{"type":"string"},"international_wire":{"type":"object","properties":{"account_number":{"type":"string"},"routing_number":{"type":"string"},"bic":{"type":"string"}}}}}]}}}}}}
```


# Webhooks

## Authentication

#### How to make sure the webhook request is originated from Align:

* Make sure `x-hmac-signature` is present in the header
* Generate the keyed hash of the payload using HMAC-SHA256 function and the API auth key
* Hex encode the hash
* Compare the hex encoded hash with the `x-hmac-signature` header sent by Align

## Events

We publish webhooks events for Customer, Onramp Transfer, Offramp Transfer, Cross Chain Transfer related activities. Here is event Payload structure:

```typescript
type WebhookEventPayload = {
    event_type: 
        'customer.kycs.updated' |
        'onramp_transfer.status.updated' |
        'cross_chain_transfer.status.updated' |
        'offramp_transfer.status.updated' |
        'virtual_account.created';
    entity_id: string;
    entity_type: 
        'customer' |
        'onramp_transfer' |
        'cross_chain_transfer' |
        'offramp_transfer' |
        'virtual_account';
    created_at: string;
}
```

## Customer Event

#### Customer KYC Updated Event

When a customer's KYC status is updated, a webhook event is triggered. The structure of this event provides details about the customer's entity and the time of the update. Below is an example structure of a `customer.kycs.updated` event:

```typescript
type CustomerKYCUpdatedWebhookEventPayload = {
  event_type: 'customer.kycs.updated';
  entity_id: string;
  entity_type: 'customer';
  created_at: string;
  event_payload?: {
    customer_id: string;
  };
  entity_object: {
    customer_id: string;
    email: string;
    company_name: string | null;
    first_name: string;
    last_name: string;
    type: 'individual' | 'corporate';
    kycs: {
      status: 'pending' | 'approved' | 'rejected';
      status_breakdown: {
        currency: 'aed' | 'eur' | 'usd';
        payment_rails: 'uaefts' | 'sepa' | 'ach' | 'wire' | 'swift';
        status: 'pending' | 'approved';
      }[];
      sub_status:
        | 'kyc_form_submission_started'
        | 'kyc_form_submission_accepted'
        | 'kyc_form_resubmission_required'
        | null;
      kyc_flow_link: string | null;
    } | null;
  };
};

```

This event helps track changes in a customer's KYC verification status.

## Onramp Transfer Event

In the event of a Onramp Transfer initiated via a **virtual account deposit**, the webhook event structure can include additional details about the virtual account. This is provided within the `event_payload` field under the `virtual_account` object.&#x20;

Event structure:

```typescript
type OnrampTransferWebhookEventPayload = {
    event_type: 'onramp_transfer.status.updated';
    entity_id: string;
    entity_type: 'onramp_transfer';
    event_payload?: {
        customer_id: string;
        virtual_account?: {
            id: string
        }
    }
    created_at: string;
}
```

## Offramp Transfer Event

Event structure:

```typescript
type OfframpTransferWebhookEventPayload = {
    event_type: 'offramp_transfer.status.updated';
    entity_id: string;
    entity_type: 'offramp_transfer';
    event_payload?: {
        customer_id: string;
    }
    created_at: string;
}
```

## Cross Chain Transfer Event

In the event of a Cross Chain Transfer initiated via a permanent route address deposit, the webhook event structure can include additional details about the permanent route address. This is provided within the `event_payload` field under the `permanent_route_address` object.&#x20;

Event structure:

```typescript
type CrossChainTransferWebhookEventPayload = {
    event_type: 'cross_chain_transfer.status.updated';
    entity_id: string;
    entity_type: 'cross_chain_transfer';
    event_payload?: {
        permanent_route_address?: {
            id: string
        }
    }
    created_at: string;
}
```

## Virtual Account Event

Event structure for Virtual Account Transfer:

```typescript
type VirtualAccountWebhookEventPayload = {
    event_type: 'virtual_account.created';
    entity_id: string;
    entity_type: 'virtual_account';
    created_at: string;
}
```


# Create Webhook

## POST /v0/webhooks

> Create new events webhook

```json
{"openapi":"3.0.0","info":{"title":"Developer API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/webhooks":{"post":{"summary":"Create new events webhook","parameters":[{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":1024}},"required":["url"]}}}},"responses":{"201":{"description":"Developer fee settings updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventsWebhook"}}}}}}}},"components":{"schemas":{"EventsWebhook":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the webhook"},"url":{"type":"string","maxLength":1024,"description":"URL where webhook events will be sent"},"status":{"type":"string","description":"Current status of the webhook"},"created_at":{"type":"string","format":"date-time","description":"When the webhook was created"}},"required":["id","url","status","created_at"]}}}}
```


# Get All Webhooks

## GET /v0/webhooks

> Get all webhooks

```json
{"openapi":"3.0.0","info":{"title":"Developer API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/webhooks":{"get":{"summary":"Get all webhooks","parameters":[{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Webhooks retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/EventsWebhook"}}}}}}}}}}},"components":{"schemas":{"EventsWebhook":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the webhook"},"url":{"type":"string","maxLength":1024,"description":"URL where webhook events will be sent"},"status":{"type":"string","description":"Current status of the webhook"},"created_at":{"type":"string","format":"date-time","description":"When the webhook was created"}},"required":["id","url","status","created_at"]}}}}
```


# Delete Webhook

## DELETE /v0/webhooks/{webhookId}

> Delete a webhook

```json
{"openapi":"3.0.0","info":{"title":"Developer API","version":"0"},"servers":[{"url":"https://api.alignlabs.dev","description":"Production server"},{"url":"https://api-sandbox.alignlabs.dev","description":"Sandbox server"}],"paths":{"/v0/webhooks/{webhookId}":{"delete":{"summary":"Delete a webhook","parameters":[{"name":"Api-Key","in":"header","description":"Your secret API key, available in the developer dashboard. Include this header on every request to authenticate your application.","required":true,"schema":{"type":"string"}},{"name":"webhookId","in":"path","description":"ID of the webhook to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Webhook deleted successfully"}}}}}}
```


# Developer Fees

Align charges a small fee on every transaction. You can apply your own fees on top of this to create a source of revenue for your business.

Example: Cross-Chain Transfers

* Align Fee: 0.1%
* Your Fee: 0.5%
* Total Fee Charged to the Customer: 0.6%

For a transfer of $10,000:

* Align Fee: $10 (0.1% of $10,000)
* Your Fee: $50 (0.5% of $10,000)
* Total Fees Collected: $60

Your Revenue: After paying the $10 Align fee, you keep $50 as additional revenue for your business.

This model allows you to generate revenue while offering valuable payment products to your customers.


# Align Fees

We charge variable fees depending on volume and currencies. If you are interested in learning more about our fees, please reach out to the [sales team](https://cal.com/align-labs/30min) or contact us via [telegram](https://t.me/buildingalign).


# Individual (KYC) Verification

This page provides an overview of the key steps and requirements for completing individual verification.

### **Know Your Customer (KYC) Guide**

Welcome to the KYC onboarding guide! This document will help you understand the verification process, required documents, and timelines so you can complete KYC quickly and smoothly.

***

#### **1. Introduction**

* **What is KYC?**\
  KYC (Know Your Customer) is a compliance process to verify the identity of individual users before they can access financial or regulated services.
* **Why it matters:**\
  Compliance is at the core of what we do. By maintaining strong KYC standards, we can offer faster, more secure, and more sophisticated financial products to our customers while staying fully aligned with regulations.
* **A strong KYC process powers:**
  * **Faster onboarding** - Quick approvals for faster access to services
  * **Better products** - Compliance unlocks advanced features
  * **Fewer payment issues** - Reduced risk of failed or delayed transactions
  * **Greater reliability** - Enhanced security for all customers

***

#### **2. How the KYC Process Works**

| Step                | Description                                     | Estimated Time                  |
| ------------------- | ----------------------------------------------- | ------------------------------- |
| 1. Account Creation | Sign up and provide basic personal information  | 1-3 minutes                     |
| 2. Document Upload  | Submit required identity documents              | 5-10 minutes                    |
| 3. Verification     | Automated + manual review by compliance team    | <1 business day (often instant) |
| 4. Approval         | Receive confirmation and access to the platform | Instant after review            |

***

#### **3. Required Information & Documents**

Below is the standard list of documents needed. Requirements may vary depending on your country of residence and risk profile.

**Personal Information**

* Full legal name
* Date of birth
* Nationality & country of residence
* Residential address

**Documents**

* **Government-issued ID** (passport preferred; national ID card or driver’s license accepted)
* **Proof of address** (e.g., recent utility bill, bank statement, or government-issued letter dated within the last 3 months)

***

#### **4. Risk-Based Approach**

Depending on your **risk profile** - based on location, nationality, industry, and transaction volumes - we may request:

* Additional identity documents
* Enhanced due diligence (EDD) checks for higher-risk profiles
* Video verification or additional liveness checks if required

This ensures we remain compliant with global AML and financial regulations while enabling secure access for all users.

***

#### **5. Document Quality Requirements**

To ensure fast approval, please submit **high-quality scans or PDFs** of all documents:

* **Screenshots are not accepted** - use official digital copies or high-resolution scans
* All text must be **clear, readable, and unaltered**
* Documents must be **valid and current** (issued within the accepted timeframe)

**Example of a Poor Document Submission**

| Issue             | Description                               | Why It Fails Compliance Check          |
| ----------------- | ----------------------------------------- | -------------------------------------- |
| **Screenshot**    | Blurry phone screenshot                   | Cannot verify authenticity or metadata |
| **Partial Image** | Cropped ID with missing info              | Critical information not visible       |
| **Expired ID**    | Document shows outdated validity          | Must be current and valid              |
| **Unreadable**    | Low resolution or heavy glare on document | Details are unclear for review         |

**Visual examples of Good vs Bad Documents**

{% columns %}
{% column %}
Good Document (likely to be accepted)

<figure><img src="/files/Ok3Hvgh2c9q2gAePRm12" alt="" width="375"><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}
Bad Document (likely to be rejected)

<figure><img src="/files/Sxw3aL9mYdlFhs259gpp" alt="" width="375"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

AI-generated example of a document that would not vs would be accepted. All resemblance to real people, documents, or data is purely coincidental and used solely for illustrative purposes.

***

#### **6. Tips for a Smooth KYC Process**

* Submit clear, full-color scans of all documents
* Use a **passport** whenever possible for fastest verification
* Make sure your proof of address is **recent and valid**
* Respond promptly if additional information is requested

***

#### **7. FAQs**

**Q: How can I avoid delays in KYC?**\
A: Submit all documents in the correct format. Missing or unclear documents cause most processing delays.

**Q: How long does KYC take?**\
A: Typically <1 business day once all documents are submitted. Often KYC is near-instant.

**Q: Is my data secure?**\
A: Yes, all documents are encrypted and processed according to strict security standards.

***

#### **8. Support & Help**

* **Email:** <pavel@alignlabs.dev>
* **Live Chat:** <https://t.me/buildingalign>

***

#### **9. Status Tracking**

Use our dashboard to track your KYC progress:

* **Pending:** Waiting for document submission
* **In Review:** Compliance team is reviewing your information
* **Resubmission Required:** Additional documents or clarification needed
* **Approved:** KYC complete, account fully active

***

#### **10. Next Steps After Approval**

* Access all platform features
* Enable payment methods or integrations


# Business (KYB) Verification

This page provides an overview of the key steps and requirements for completing business verification.

### **Know Your Business (KYB) Guide**

Welcome to the KYB onboarding guide! This document will help you understand the verification process, required documents, and timelines so you can complete KYB quickly and smoothly.

***

#### **1. Introduction**

* **What is KYB?**

  KYB (Know Your Business) is a compliance process to verify the identity and legitimacy of a company before it can access financial or regulated services.
* **Why it matters:**

  Compliance is at the core of what we do. By maintaining strong compliance standards, we can offer more sophisticated and innovative financial products to our customers while staying fully aligned with regulations.

A strong KYB process powers:

* **Faster settlements** - Fewer holds, quicker fund flows.
* **Better products** - Compliance unlocks advanced financial services.
* **No lost payments** - Reduced errors and payment failures.
* **Global scalability** - Enter new markets and handle higher volumes.
* **Stronger reliability** - Early risk detection protects new & existing clients.

***

#### **2. How the KYB Process Works**

| Step                         | Description                                               | Estimated Time       |
| ---------------------------- | --------------------------------------------------------- | -------------------- |
| 1. Customer Account Creation | Call customer endpoint and provide basic customer details | 1-3 minutes          |
| 2. Document Upload           | Submit required documents (see below)                     | 5-10 minutes         |
| 3. Verification              | Automated + manual review by compliance team              | 1-5 business days    |
| 4. Approval                  | Receive confirmation and access to the platform           | Instant after review |

***

#### **3. Required Information & Documents**

Below is the standard list of documents needed. Requirements may vary depending on your jurisdiction and business type.

**Company Information**

* Legal business name
* Registration number & country of incorporation
* Registered business address
* Core business information (e.g. registration date, tax identification number if applicable)

**Documents**

* Certificate of Incorporation / Business Registration
* Memorandum and Articles of Association (or equivalent governing corporate documents)
* Shareholder & Director Registry (or equivalent)
  * If providing an unofficial document, please provide signed and dated Shareholder Registry that clearly shows ownership (name, percentage ownership)
* Proof of business address (e.g., utility bill, bank statement, or lease agreement)
  * Proof of business address must be an official document or a lease agreement
  * Not accepted as proof of address: Vendor invoices (e.g., bills or receipts from third-party suppliers), handwritten receipts or unofficial agreements.
* Identification documents for all Ultimate Beneficial Owners (UBOs) who **hold 25% or above** ownership, voting rights, or any form of direct or indirect control over the entity.
  * We explicitly KYC each UBO who holds 25% or above ownership or voting rights.
  * Passport preferred for all individuals (government-issued ID accepted if passport not available)
  * Proof of address required for each UBO (e.g., recent utility bill, bank statement, or government-issued letter)
* Company structure chart (if applicable)

**Optional (if required by jurisdiction):**

* Tax registration certificate
* Financial statements

**Document Checklist**

* [ ] Certificate of Incorporation / Business Registration
* [ ] Memorandum and Articles of Association (or equivalent)
* [ ] Shareholder & Director Registry
* [ ] Proof of Address (recent document dated within the last 3 months)
* [ ] Source of Funds Documentation
* [ ] KYC Information on UBOs (anyone that directly or inderectly controls more than 25% of the business)

In addition, if a business would like to open a USD SWIFT account:

* [ ] Financial Statements (balance sheets, income statements, profit & loss statements)

***

#### **4. Risk-Based Approach**

Depending on your **risk profile** - based on location, nationality, industry, and transaction volumes - we may request:

* **Additional documents** (e.g., financial audits, tax filings)
* **Enhanced due diligence (EDD)** checks for higher-risk entities or jurisdictions
* **Video verification** or additional identity checks for UBOs if required

This ensures we remain compliant with global AML and financial regulations while enabling secure access for all customers.

***

#### **5. Document Quality Requirements**

To ensure fast approval, please submit **high-quality scans or PDFs** of all documents:

* **Screenshots are not accepted** - use official digital documents or high-resolution scans.
* All text must be **clear, readable, and unaltered**.
* Documents must be **current** (e.g., dated within the last 3 months if applicable).

**Example of a Poor Document Submission**

| Issue                | Description                                                                       | Why It Fails Compliance Check                                   |
| -------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| **Screenshot**       | The user submits a screenshot.                                                    | Screenshots can be manipulated; lack metadata; unreadable text. |
| **Partial Document** | Only half the card is visible; key information is omitted.                        | Missing information → cannot verify authenticity.               |
| **Expired Document** | An ID card shows an outdated address and the document is not current.             | An ID document must be valid and recent.                        |
| **Blurry Image**     | Photo taken at an angle with shadows; details like name and DOB are hard to read. | OCR systems and compliance officers cannot verify.              |
| **No Back Side**     | Only front side of an ID card is provided; back side omitted.                     | Full ID verification fails without full document.               |

**Visual examples of Good vs Bad Documents**

{% columns %}
{% column %}

<figure><img src="/files/ryqG2GGQjnzP2di5PMew" alt="" width="270"><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/hGzxXm6jIg6wC2ambbqH" alt="" width="265"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

AI-generated example of a document that would not vs would be accepted. All resemblance to real people, documents, or data is purely coincidental and used solely for illustrative purposes.

***

#### **6. Tips for a Smooth KYB Process**

* Ensure that every UBO holding **25% or above** ownership, voting rights, or control completes full KYC verification.
* Submit documents in **PDF** or **high-quality image** format.
* Double-check shareholder and ownership information before submission.
* Provide **contact details** in case the compliance team needs clarification.

***

#### **7. FAQs**

**Q: How can I streamline KYB process?**

A: To avoid delays, ensure all required documents are submitted in the correct format. Missing, incomplete, or low-quality files (e.g., screenshots) are the most common causes of KYB processing delays.

**Q: How long does KYB take?**

A: Typically 1-5 business days once all documents are submitted.

**Q: What if my company has complex ownership?**

A: Submit a clear ownership chart showing all layers up to ultimate beneficial owners.

**Q: Is my data secure?**

A: Yes, all documents and data are encrypted and handled in accordance with compliance regulations.

***

#### **8. Support & Help**

* **Email:** <pavel@alignlabs.dev>
* **Live Chat:** <https://t.me/buildingalign>

***

#### **9. Status Tracking**

Use our dashboard to track your KYB progress:

* **Pending KYC Completion:** Waiting for document submission
* **Pending:** KYB is under review
* **Resubmission Required:** Additional info requested or previously provided info was not accepted
* **Approved:** KYB is complete, and your account is active

To view the full breakdown of approved products, please refer to the information provided in status\_breakdown - [Get Customer](/align-api/customers/get-customer).

***

#### **10. Next Steps After Approval**

* Access platform features
* Set up payment methods or integrations

***


# Source of Funds (SoF) Verification

This page provides an overview of the key steps and requirements for verifying the source of funds for individuals and businesses.

### Source of Funds (SoF) Guide

Occasionally, for large transactions and clients of higher risk profile, we may ask for Source of Funds (SoF). This guide will help you understand the SoF process, required **official documents**, and best practices so you can complete checks smoothly and efficiently.

***

#### 1. Introduction

**What is Source of Funds (SoF)?**

Source of Funds (SoF) verification ensures that any money entering an account or being used for payments comes from **legitimate, clearly documented, and lawful sources**.

**Why it matters:**

Under **FATF (Financial Action Task Force) standards** and local anti-money laundering (AML) rules, verifying the origin of funds is required to:

* Meet global compliance obligations
* Prevent money laundering, terrorism financing, and fraud
* Support safe access to financial products and services
* Provide transparency and trust for all parties

***

#### 2. Acceptable Sources of Funds & Examples of Documents

Here are common funding sources with **examples of official documents** used for verification:

**A) Personal Savings or Employment Income**

* **Examples:** Salaries, bonuses, pensions, personal savings
* **Documents:** Payslips, tax returns, employment contracts, bank statements

**B) Business Revenues**

* **Examples:** Trade income, service contracts, freelance work
* **Documents:** Invoices, signed contracts, bank statements showing client payments

**C) Investments or Grants**

* **Examples:** Private investments, grants, scholarships
* **Documents:** Investment agreements, grant letters, bank transfer receipts

**D) Sales of Assets**

* **Examples:** Property sales, vehicle sales, valuable items
* **Documents:** Sale agreements, title transfer documents, bank statements

**E) Loans or Credit Lines**

* **Examples:** Bank loans, credit facilities
* **Documents:** Loan agreements, proof of disbursement, lender details

**F) Other Legitimate Sources**

* **Examples:** Inheritance, insurance payouts
* **Documents:** Legal documents confirming inheritance, insurance claim settlements

***

#### 3. Risk-Based Approach

We apply **risk scoring** based on:

* Country or jurisdiction risk
* Source of funds complexity
* Amount and frequency of transactions

For **higher-risk cases**, additional documents may be required, such as:

* Source of Wealth declarations
* Audited financials or tax filings
* Legal or regulatory approvals

***

#### 4. Document Quality Requirements

To ensure smooth processing:

* Submit **official, clear documents** in PDF or scan format
* Ensure **payer names, amounts, and dates match** across all documents
* Provide documents from the **past 3-6 months** where applicable

***

#### 5. Tips for a Smooth SoF Process

* Gather documents **before sending or receiving funds**
* Double-check that all names and amounts **match exactly**
* Use **summaries** if multiple sources of funds are involved
* Ask for confirmation letters or attestations if needed

***

#### 6. FAQs

**Q: Why can’t I just send a news article or online post?**\
A: Regulators require official evidence such as contracts, bank statements, or legal documents. Media reports, news articles, or social media posts are not accepted as proof.

**Q: Do small transactions also need documents?**\
A: No. Simplified checks may apply for low-risk payments & low-risk clients, but some documentation may still be required.

**Q: Are my documents secure?**\
A: Yes, all documents are handled in line with **regulatory data protection requirements**.

***

#### 7. Support & Help

* **Email:** <pavel@alignlabs.dev>
* **Live Chat:** <https://t.me/buildingalign>

***


# Customer Onboarding

**Onboarding Requirements**

To get started with Align, all customers must complete our Standard Verification, which includes:

[Individual (KYC) Verification](/compliance/individual-kyc-verification)

[Business (KYB) Verification](/compliance/business-kyb-verification)

**Product-Specific Onboarding**

Certain products (also known as payment rails) require an additional layer of compliance approval from our financial partners. If you intend to use the following services, please complete the secondary onboarding steps:

[USD SWIFT & FedWire Onboarding](/compliance/customer-onboarding/usd-swift-and-fedwire-onboarding)

[USD ACH & Wire Onboarding](/compliance/customer-onboarding/usd-ach-and-wire-onboarding)

Should you have any questions, please do not hesitate to contact your account manager.

**Accepted Use Policy**

All users are subject to Accepted Use Policy that can be found here - [Prohibited and Restricted Use](/compliance/prohibited-and-restricted-use)


# USD SWIFT & FedWire Onboarding

This guide provides step-by-step instructions for onboarding customers to create and use USD accounts through the Align platform.

#### Required Documents for Business USD SWIFT & FedWire Onboarding

To complete the USD SWIFT & FedWire onboarding, our banking partner requires the following documents:

1. **Certificate of Incorporation** - The official document from the company’s registry confirming its legal formation.
2. **Articles of Association -** The legal document outlining your company’s governance rules, internal structure, and shareholder rights.
3. **Register of Shareholders and Directors** - An official list of all current shareholders and directors.

* *Important:* You must identify the Ultimate Beneficial Owner(s) (UBOs) who collectively hold 51% or more of the business. This can be a single individual with at least 51% ownership, or multiple individuals whose combined ownership meets or exceeds 51%.

4. **Business Proof of Address** - A document verifying your business location, dated within the last 90 days. Acceptable documents include a utility bill, bank statement, valid lease agreement, or a government-issued letter.
5. **Proof of Source of Funds** - Documentation showing the legitimate origin of the business's funds. Examples include recent bank statements, invoices, commercial contracts, or investment records.

* *Important:* The value shown in your documents must align with your anticipated transaction volume. For example, if you expect to transact $20,000 per month, documents proving only $2,000 in monthly revenue will not be accepted.

6. **Financial Statements** - The company's most recent official financial records, typically including a balance sheet, income statement, and cash flow statement.

We cannot onboard a business for USD SWIFT & FedWire Virtual Accounts unless all documents are provided.

We may require additional supporting documentation on a per-transaction basis to ensure ongoing compliance with our banking partners.


# USD ACH & Wire Onboarding

We integrate directly with a curated network of top-tier financial institutions to facilitate local payment methods that fall outside standard credit or debit processing.

While these services are managed entirely through the Align interface, certain high-value or highly regulated rails operate under a shared governance model.&#x20;

This means that while Align provides the technology, the underlying financial partner performs a secondary layer of due diligence.

#### Specific Payment Methods Requiring Authorization

The following services require a one-time, secondary compliance review by our regional partners before they can be activated:

* **USD ACH & Wire Payments** - Direct domestic transfers within the United States require an additional vetting process by our US-based banking partner.&#x20;
* **USD Virtual Accounts** - The issuance of unique, dedicated virtual account numbers for automated reconciliation requires specific approval from our underlying partner.&#x20;

#### Important Considerations

Because these financial rails are managed in conjunction with third-party institutions, users should be aware of the following:

1. **Independent Compliance Standards** - Our partners may have specific documentation requirements or industry restrictions that differ from Align’s standard onboarding.
2. **Operational Constraints** - Certain product features, such as transaction limits, geographic availability, or processing windows, may be dictated by the partner and are subject to change based on their internal policies.
3. **Timeline** - While Align streamlines this process, the secondary authorization can introduce a brief lead time before these specific payment methods are fully "live" on your account.

💡 **How to Apply -** Onboarding users to these partner rails is not triggered automatically. Please reach out to our team if you are interested in accessing this product.


# Financial Institutions Onboarding

### Onboarding Requirements for Financial Institutions

Businesses operating under specific industry codes are classified as Financial Institutions. Due to regulatory requirements, these businesses must submit additional documentation during the onboarding process. FInancial Institutions are restricted to 1st party payments only.&#x20;

### Core Product Requirement

Please note that financial institutions are limited to first-party transactions. If you intend to process payments on behalf of your customers, each entity must be onboarded directly and undergo independent KYC/KYB verification.

### Applicable Industry Codes

If your business falls under any of the following codes, you will be subject to these additional requirements:The following additional documents are required to be uploaded:

| **Industry Code** | **Description**                                                          |
| ----------------- | ------------------------------------------------------------------------ |
| 425120            | Wholesale Trade Agents and Brokers                                       |
| 441110            | New Car Dealers                                                          |
| 441120            | Used Car Dealers                                                         |
| 522190            | Other Depository Credit Intermediation                                   |
| 522220            | Sales Financing                                                          |
| 522291            | Consumer Lending                                                         |
| 522292            | Real Estate Credit                                                       |
| 522293            | International Trade Financing                                            |
| 522320            | Financial Transactions Processing, Reserve, and Clearinghouse Activities |
| 522390            | Other Credit Intermediation                                              |
| 523120            | Securities Brokerage                                                     |
| 523130            | Commodity Contracts Dealing                                              |
| 523210            | Securities and Commodity Exchanges                                       |
| 523920            | Portfolio Management                                                     |
| 523930            | Investment Advice                                                        |
| 523999            | Miscellaneous Financial Investment Activities                            |
| 524113            | Direct Life Insurance Carriers                                           |
| 524210            | Insurance Agencies and Brokerages                                        |
| 525120            | Other Insurance Funds                                                    |
| 525910            | Open-End Investment Funds                                                |
| 525990            | Other Financial Vehicles                                                 |
| 531210            | Offices of Real Estate Agents and Brokers                                |
| 533110            | Lessors of Nonfinancial Intangible Assets (except Copyrighted Works)     |
| 541214            | Payroll Services                                                         |
| 551111            | Offices of Bank Holding Companies                                        |
| 561450            | Credit Bureaus                                                           |

**1. AML CFT Sanctions Policy**

A formal policy outlining the company’s procedures for preventing money laundering, terrorist financing, and sanctions breaches.

**2. AML CFT Sanctions Audit**

An independent audit report assessing the effectiveness of the company’s AML, CFT, and sanctions controls.

**3. Regulatory License**

An official licence issued by the relevant regulator authorising the company to conduct regulated financial activities.

**4. Compliance Officer Resume**

A résumé or CV demonstrating the qualifications and experience of the company’s appointed Compliance Officer.

**5. Share Certificate**

An official certificate issued by the company showing ownership of its shares and the registered shareholders.

**6. Wolfsberg Questionairre**

A standard due-diligence questionnaire covering the company’s financial crime controls, based on the Wolfsberg Group framework.

Financial Institution onboarding requires a written approval from the bank and can take up to two working weeks after all of the docs have been submitted.&#x20;

<br>


# Prohibited and Restricted Use

This section defines the jurisdictions, business activities and usage restrictions that are not supported on the platform.\
\
Customers, beneficial owners, counterparties and transaction activity must comply with these requirements at all times.

For detailed overview, please refer to:

1. [Prohibited Countries](/compliance/prohibited-and-restricted-use/prohibited-countries)
2. [Prohibited Activities](/compliance/prohibited-and-restricted-use/prohibited-activities)
3. [Restrictions on Financial Institutions](/compliance/prohibited-and-restricted-use/restrictions-on-financial-institutions)

The lists and examples in this section are **non-exhaustive** and may be updated, amended or expanded from time to time in line with regulatory, risk and compliance requirements.

<br>


# Prohibited Countries

We do not onboard customers, counterparties or beneficial owners that are located in, incorporated in, or otherwise associated with the jurisdictions listed below. We also do not support transactions to or from these jurisdictions.

* Afghanistan
* Belarus
* Central African Republic
* Crimea
* Cuba
* Democratic Republic of the Congo
* Haiti
* Iran
* Myanmar
* Democratic People’s Republic of North Korea
* Puerto Rico
* Russia
* South Sudan
* Sudan
* Syria
* Ukraine
* Uzbekistan
* Venezuela
* Yemen


# Prohibited Activities

If a customer, beneficial owner, counterparty or transaction is linked to any of the activities below, onboarding and/or transaction processing will be declined.

#### Generally prohibited

* Weapons, ammunition and other military or war-related goods.
* Shell banks or shell banking structures.
* Nuclear or atomic energy businesses, including nuclear materials and related commercial activities.
* Gambling, betting, wagering and any services that enable or support gambling activity.
* Any business that is required to be licensed but does not hold a valid licence in the relevant jurisdiction.

***

#### Intellectual property and proprietary rights infringement

* Sale, distribution or access to pirated or counterfeit music, films, software or other licensed content without authorisation from the rights holder.
* Any product or service that infringes, or facilitates infringement of, trademarks, patents, copyrights, trade secrets or third-party proprietary or privacy rights.

***

#### Counterfeit or unauthorised goods

* Unauthorised sale or resale of branded or designer goods or services.
* Sale of goods or services that are illegally imported or exported.

***

#### Regulated or illegal products and services

* Charities and non-governmental organisations, including fundraising and donation processing.
* Marijuana dispensaries and cannabis-related businesses.
* Sale of tobacco products, electronic cigarettes and e-liquids.
* Online pharmacies and remote or cross-border pharmaceutical fulfilment.
* Age-restricted goods or services where regulatory compliance cannot be demonstrated.
* Weapons, munitions, gunpowder, explosives, fireworks and related materials.
* Toxic, flammable or radioactive materials.

***

#### Adult content and services

* Pornographic or obscene material in any form, including text, images, video or other media.
* Sexually-oriented services, including prostitution, escort services, pay-per-view adult content and adult live-chat services.

***

#### Get-rich-quick schemes

* Investment opportunities or other services marketed as offering guaranteed, fixed or unusually high returns.

***

#### Mugshot and pay-to-remove platforms

* Platforms that publish arrest photographs or similar content primarily to pressure individuals into paying for removal or to create reputational harm.

***

#### No-value-added services

* Sale or resale of services without meaningful additional value to the buyer.
* Resale of government or public services without authorisation or legitimate added value.
* Business models that are deceptive, unfair or predatory toward consumers.

***

#### Aggregation and obfuscation of funds

* Any licensed or unlicensed aggregation of funds owed to third parties.
* Factoring or similar arrangements primarily intended to obscure the origin, ownership or flow of funds.

***

#### Drug paraphernalia

* Equipment designed primarily for the manufacture or use of drugs, including bongs, vaporizers and hookahs.

***

#### Multi-level marketing and pyramid schemes

* Pyramid schemes and multi-level, network or referral marketing programmes.

***

#### Pseudo-pharmaceuticals

* Products making medical or health claims that have not been approved or verified by the applicable regulator.
* Products making specific claims relating to weight loss or enhanced sexual performance without regulatory approval.

***

#### Substances designed to mimic illegal drugs

* Sale of legal substances designed to replicate the effects of illegal drugs, including salvia and kratom.

***

#### Violence and hate-based activity

* Any organisation that engages in, promotes or celebrates unlawful violence or physical harm to people or property.
* Any organisation that promotes or supports violence or hatred against protected groups, including on the basis of race, religion, disability, gender, sexual orientation or national origin.


# Restrictions on Financial Institutions

Regulated financial institutions, including banks, electronic money institutions, payment institutions, money service businesses and similar regulated entities, are restricted to **first-party payment activity only**.

This means:

* The regulated financial institution must be the direct customer.
* Payments must be made solely for the institution’s own operational or corporate purposes.
* The institution must act on its own behalf and for its own account.

The following activities are not permitted:

* Acting as an intermediary, agent, correspondent, processor, gateway or platform for third-party merchants, clients or end users.
* Collecting, receiving, holding, pooling, settling or forwarding funds on behalf of underlying customers or beneficiaries.
* Operating as a payment facilitator, programme manager, sponsor or pass-through payments provider.

If a financial institution wishes to use the full scope of Align’s services, including third-party settlements and virtual accounts, its underlying customers (both individuals and businesses) **must be onboarded directly with Align.**


# 1st Party & 3rd Party Payments

Align supports both 1st Party & 3rd Party Payments. There are some fundamental differences between these two products.

**Differences between 1st Party & 3rd Party Payments.**

The fundamental difference between payment types comes down to the legal identity of the sender and the receiver.

* If they are the exact same entity, it's a 1st party payment.&#x20;
* If they are different entities or individuals, it's a 3rd party payment.

💡 **Important -** 3rd party payments can only be processed via Virtual Accounts.

* 1st Party Payments can be processed to/from Align Payments Ltd
* 3rd Party Payments can only be processed to/from a customer's Virtual Account. You cannot process 3rd party transactions directly without creating a Virtual Account.

**Quick overview**

| **Feature**               | **1st Party Payments**                                           | **3rd Party Payments**                                               |
| ------------------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------- |
| Entities Involved         | One (Sender and Receiver are the same)                           | Two or more (Sender and Receiver are different)                      |
| Primary Purpose           | Treasury management, account funding, liquidity, balancing books | B2B payments, payroll, purchasing, customer refunds, paying invoices |
| Virtual Account Required  | No                                                               | Yes                                                                  |
| Name of Sender / Receiver | Align Payments Ltd                                               | Your Customer's Name                                                 |

#### 1st Party Payments

A 1st party payment (often called a "me-to-me" transfer) occurs when a business or individual moves money between different financial accounts that they own. The funds never leave the legal control of the entity.

* Expanded Example: Acme Inc. sends a payment from its primary stablecoin wallet to to its Acme Inc. Bank of America payroll account.
* Common Use Cases:
  * Treasury management and moving money between your own accounts.
  * Funding a specialized account (like a payroll or tax account) before a disbursement.
  * Moving money across borders between international subsidiaries of the exact same company.

**3rd Party Payments**

A 3rd party payment occurs when funds are transferred from one legal entity to an entirely different one. This is the standard definition of a commercial transaction or a payout.

* Completed Example: Acme Inc. sends a payment to Beta Corp to settle an invoice for software services, or Acme Inc. sends a direct deposit to Jane Doe, an employee.
* Common Use Cases:
  * Accounts Payable: Paying vendors, suppliers, or contractors.
  * Payroll: Disbursing salaries to employees.
  * Customer Transactions: Issuing a refund to a customer or receiving a payment from a buyer.


# End User Agreement

ALIGN END USER AGREEMENT

Last updated: 22 June 2026

This End User Agreement (the "Agreement") is a binding contract between you (the "End User", "you" or "your") and Align Payments Ltd, a money services business registered with the Financial Transactions and Reports Analysis Centre of Canada ("FINTRAC") ("Align Payments", "Align", "we", "us" or "our"). Align Payments is the contracting party in respect of this Agreement and is the regulated provider of the Align Services described herein.

For information only: Align Payments is a wholly owned subsidiary of Align Labs Ltd, a company incorporated in England and Wales (Company No. 14583880, registered office: 90a High Street, Berkhamsted, Hertfordshire, HP4 2BL, United Kingdom). Align Labs Ltd is the parent company of the group and the owner and licensor of the Align application programming interface and related technology. Align Labs Ltd does not provide any regulated financial services to End Users, is not a party to this Agreement, and has no contractual, custodial, fiduciary or other obligation to you in respect of any Order. All references in this Agreement to "Align" mean Align Payments Ltd only.

Align Payments delivers the Align Services together with a network of financial institutions and payment service providers that are licensed in the appropriate jurisdictions (each a "Delivery Partner"). Nothing in this Agreement requires Align Payments to offer services in any jurisdiction in which it is unlawful for it to do so.

Align does not market the Services directly to End Users. Instead, Align provides an application programming interface and routing infrastructure (the "Align Services") to businesses that integrate the Align Services into their own products and services (each a "Developer"). When you use a Developer's product to send, receive, convert or settle value through Align, you are an End User of the Developer and you become party to this Agreement directly with Align Payments. Developers are independent businesses; they are not agents, mandataries, representatives or franchisees of Align Payments, and they do not perform any regulated money services business activity on behalf of Align Payments. You must accept this Agreement before any Order you submit can be processed.

You may accept this Agreement programmatically, including through an application programming interface call routed via your Developer's integration that captures and transmits your assent, by clicking an "I accept" button presented to you, by submitting an Order, or by any other method that records your assent. Each such acceptance constitutes your electronic signature and your agreement to be bound by this Agreement and by Align Payments' Privacy Policy, which is incorporated herein by reference. The Developer's role in capturing or transmitting your acceptance is a technical one and does not make the Developer a party to this Agreement or an agent, mandatary or representative of Align Payments.

IMPORTANT NOTICES. PLEASE READ CAREFULLY.

(1) NON-CUSTODIAL SERVICES. ALIGN DOES NOT PROVIDE CUSTODY, HOSTED WALLETS, CUSTOMER ACCOUNTS, DEPOSITS, STORED BALANCES OR WITHDRAWAL FUNCTIONALITY TO END USERS. YOU MUST PROVIDE AND CONTROL YOUR OWN WALLET AND PAYOUT DESTINATION.

(2) FINALITY. ORDERS ARE FINAL ONCE SETTLED. YOU ARE SOLELY RESPONSIBLE FOR THE ACCURACY OF SETTLEMENT DETAILS YOU OR YOUR DEVELOPER PROVIDE.

(3) AML AND SANCTIONS COMPLIANCE. ALIGN PAYMENTS IS A REGULATED MONEY SERVICES BUSINESS AND IS REQUIRED BY LAW TO VERIFY YOUR IDENTITY, CONDUCT ONGOING MONITORING OF YOUR USE OF THE ALIGN SERVICES, AND FILE PRESCRIBED REPORTS WITH FINTRAC AND OTHER COMPETENT AUTHORITIES.

(4) ELECTRONIC COMMUNICATIONS. YOU CONSENT TO RECEIVE ALL DISCLOSURES AND COMMUNICATIONS RELATING TO THE ALIGN SERVICES IN ELECTRONIC FORM, DELIVERED THROUGH YOUR DEVELOPER OR DIRECTLY BY ALIGN.

## 1. Definitions

In this Agreement, capitalised terms have the meaning given below or as defined in the body of this Agreement:

"Applicable Law" means all laws, statutes, regulations, rules, orders, directives, sanctions regimes and binding guidance of any governmental, regulatory or self-regulatory authority applicable to Align Payments or to the Align Services, including, without limitation, the Proceeds of Crime (Money Laundering) and Terrorist Financing Act ("PCMLTFA") and its regulations, the Criminal Code (Canada), the Special Economic Measures Act (Canada), the Justice for Victims of Corrupt Foreign Officials Act (Canada), the United Nations Act (Canada), applicable provincial consumer protection and money services business legislation, and any equivalent or successor laws of any other relevant jurisdiction.

"Compliance Hold" means a restriction placed on an Order or related settlement flow by Align or a Delivery Partner where required to comply with Applicable Law, sanctions screening, AML/CTF obligations, fraud prevention controls, the Travel Rule, or a lawful request from a competent authority, including while verifying information or completing screening.

"Connected Account" means a bank account, payment account, or other fiat funding or payout destination identified by you or by your Developer for the purpose of funding Orders or receiving the proceeds of Orders.

“Consumer”  means an individual End User who enters into and uses this Agreement wholly or primarily for personal, family or household purposes and who is ordinarily resident in a jurisdiction whose law confers on that individual mandatory consumer-protection rights that cannot be excluded or derogated from by agreement. Where there is doubt as to whether an End User is a Consumer, that End User is treated as a Consumer for the purposes of Section 18.

“Courts”  means the courts of the Province of Ontario, except where this Agreement expressly refers to the courts of another jurisdiction; and a reference to “any court of competent jurisdiction” is not limited to the Courts.

"Cryptocurrency Wallet" means a self-directed or third-party digital asset wallet identified by you or by your Developer for the purpose of sending or receiving Digital Assets in connection with Orders. For the avoidance of doubt, no Cryptocurrency Wallet is provided, hosted, custodied or controlled by Align.

"Delivery Partner" means an independent third party engaged by Align Payments on arm's length terms to facilitate specific execution or settlement steps in connection with Orders, including (a) licensed financial institutions, payment service providers, virtual asset service providers, exchanges and custodians; and (b) technology, infrastructure, analytics and other service providers. For the avoidance of doubt, no Delivery Partner is an agent, mandatary, branch, employee or representative of Align Payments for the purposes of subsection 9.31(1) of the PCMLTFA or otherwise, and each Delivery Partner provides its services in its own name and, where applicable, under its own regulatory authorisations.

"Developer" means the business that has integrated the Align Services into its own product or service and through which you access and use the Align Services.

"Digital Asset" means any cryptocurrency, virtual currency, stablecoin or other digital representation of value that is recorded on a distributed ledger or blockchain and that is supported by Align from time to time.

"FINTRAC" means the Financial Transactions and Reports Analysis Centre of Canada.

"Fiat Currency" means any government-issued currency that is designated as legal tender in its country of issue.

“ICC”  means the International Chamber of Commerce.

“ICC Rules”  means the Rules of Arbitration of the ICC, as in force from time to time, including the Expedited Procedure Provisions where applicable.

"KYC" and "KYB" mean Know Your Customer and Know Your Business identity verification, due diligence and ongoing monitoring procedures, including, where applicable, Enhanced Due Diligence ("EDD").

“Non-Consumer End User” means any End User that is not a Consumer, including any corporation, partnership, trust, sole proprietorship or other entity, and any individual who uses the Align Services wholly or primarily for business, commercial, professional or trade purposes.

"Order" means an instruction submitted to Align (directly or through your Developer) to buy, sell, convert, transfer, route or otherwise move Fiat Currency or Digital Assets in connection with the Align Services.

"Operational Routing Wallet" means a blockchain address or wallet controlled by Align or a Delivery Partner and used solely as a technical step to route, execute and settle a specific Order. Operational Routing Wallets are not allocated to any End User, do not represent any End User balance, are not accessible by End Users and are not made available for deposit, storage or later withdrawal.

"Personal Information" has the meaning given in Align Payments' Privacy Policy and, where relevant, the meaning given to "personal information" under the Personal Information Protection and Electronic Documents Act (Canada) ("PIPEDA") and equivalent provincial privacy legislation.

"Restricted Jurisdiction" means any country, territory, region or part thereof in respect of which Align Payments does not provide, or determines in its sole discretion not to provide, the Align Services from time to time. Align Payments maintains the list of Restricted Jurisdictions and may update it at any time without prior notice. A jurisdiction may be designated as restricted for any reason Align Payments considers appropriate, including sanctions, FATF high-risk or monitoring status, elevated financial crime risk, banking partner or Delivery Partner restrictions, absence of appropriate licensing or regulatory coverage, or operational, legal or reputational considerations.

"Sanctions Lists" means any of the consolidated lists of designated persons and entities maintained by FINTRAC, Global Affairs Canada, the Office of the Superintendent of Financial Institutions, the Office of Foreign Assets Control of the U.S. Department of the Treasury, His Majesty's Treasury (UK), the European Union and the United Nations Security Council, in each case as updated from time to time.

"Settlement Infrastructure" means bank, payment, blockchain or partner infrastructure used solely to facilitate settlement steps between regulated counterparties and Delivery Partners in connection with a specific Order. Settlement Infrastructure is not an End User account, does not create any account relationship with Align, and you acquire no legal or beneficial entitlement to any balance within such infrastructure.

"Stablecoin" means a Digital Asset designed to maintain a stable value by reference to a Fiat Currency or other reference asset.

"Travel Rule" means the obligations under the PCMLTFA and equivalent laws requiring originator and beneficiary information to accompany electronic funds transfers and virtual currency transfers above prescribed thresholds.

## 2. Eligibility

2.1 To use the Align Services as an End User, you must: (a) be at least 18 years of age and have full legal capacity to enter into this Agreement; (b) if you are acting on behalf of a legal entity, be duly authorised to bind that entity to this Agreement, in which case "you" refers to both you personally and to the entity; (c) have successfully completed any KYC, KYB and (where required) EDD checks requested by Align or its Delivery Partners; (d) not be ordinarily resident, located, established or incorporated in a Restricted Jurisdiction; and (e) not be a person designated on any Sanctions List, nor owned or controlled by, nor acting on behalf of, any such person.

2.2 Align may add to, remove from or otherwise update the list of Restricted Jurisdictions at any time, with or without notice to you, in order to comply with Applicable Law or with the requirements of its Delivery Partners.

2.3 You represent and warrant that all information provided by you for KYC, KYB and EDD purposes is true, accurate, complete and current. You acknowledge that Align Payments conducts its own independent identity verification, due diligence and ongoing monitoring of you as an End User and does not rely on any Developer to perform any such function. Where a Developer's integration is used as a technical means to transmit information from you to Align Payments, such transmission is carried out at your direction and for your convenience, and does not constitute the performance of any regulated function by the Developer on behalf of Align Payments.

## 3. Acceptance through the Developer; Relationship of the Parties

3.1 You access the Align Services through one or more access channels made available by Align Payments from time to time, which may include (a) integrations operated by a Developer, (b) direct products operated by Align Payments (including any neobank, dashboard, or over-the-counter ("OTC") service), or (c) any other access channel that Align Payments may introduce. Where you access the Align Services through a Developer, the Developer is responsible for the user interface, customer support, fee disclosures, and the commercial relationship with you, and Align Payments is responsible for the regulated execution and settlement of Orders in accordance with this Agreement and Applicable Law. Where you access the Align Services through a direct Align Payments product, Align Payments is responsible for both the user interface and the regulated execution and settlement of Orders. In neither case does Align Payments establish, open, or maintain any account, hosted wallet, deposit relationship, or stored balance for you except as expressly described in the terms applicable to the relevant access channel.

3.2 By submitting an Order through the Align Services - whether directly, through a Developer's interface or API integration, through a direct Align Payments product, or through any other access channel - you accept and agree to be bound by this Agreement. Your acceptance may be evidenced by an API call, a click-through, a digital signature, a recorded affirmation captured through the relevant access channel, or any other reliable method of recording assent. Each Order you submit reaffirms your acceptance of the then-current version of this Agreement. For the avoidance of doubt, where you access the Align Services through a Developer, the Developer does not submit Orders on behalf of Align Payments, and the routing of your instructions through the Developer's technical integration does not make the Developer an agent, mandatary, or representative of Align Payments.

3.3 Relationship of the parties; no agency. Nothing in this Agreement creates any partnership, joint venture, employment, franchise, fiduciary, custodial or trust relationship between you and Align Payments. In particular, and for the avoidance of doubt:

* no Developer is an agent, mandatary, representative, nominee, employee, branch, franchisee or authorised person of Align Payments for any purpose, including for the purposes of subsection 9.31(1) of the PCMLTFA or the regulations made thereunder;
* no Developer conducts any money services business activity, customer identification, customer due diligence, enhanced due diligence, sanctions screening, beneficial ownership determination, third-party determination, transaction monitoring, recordkeeping or regulatory reporting on behalf of Align Payments, and Align Payments does not rely on any Developer for the performance of any such function;
* Developers are independent businesses that have integrated the Align Services into their own products and services and have their own direct contractual relationship with you, and neither Align Payments nor any Developer holds the other out as an agent or representative of the other;
* each Delivery Partner is an independent regulated or licensed third-party service provider engaged by Align Payments on arm's length terms to facilitate specific execution or settlement steps. No Delivery Partner is an agent or mandatary of Align Payments for the purposes of subsection 9.31(1) of the PCMLTFA, and no Delivery Partner conducts any regulated activity of Align Payments as Align Payments' agent or mandatary; and
* Align Payments is the entity that provides regulated money services business activity under this Agreement, and it is Align Payments that discharges the customer identification, ongoing monitoring, recordkeeping and reporting obligations owed to FINTRAC in respect of End Users.

You are not a customer of any Developer or Delivery Partner of Align Payments solely by reason of your use of the Align Services, and you are not an agent or mandatary of Align Payments, any Developer or any Delivery Partner.

3.4 No regulated activity by Align Labs Ltd. You acknowledge and agree that Align Labs Ltd (the UK parent company of Align Payments) does not provide, and is not being held out as providing, any regulated financial service to you, including any money services business activity, foreign exchange dealing, remittance or transmission of funds, dealing in virtual currencies, payment services, custody or safeguarding of funds or assets. Align Labs Ltd is not authorised or regulated by the Financial Conduct Authority, is not registered with FINTRAC, and is not a party to this Agreement. Any mention of Align Labs Ltd in this Agreement or in any Align marketing material is for informational and corporate-group identification purposes only, and no End User has or will acquire any right or claim against Align Labs Ltd in respect of any Order or any other Align Service.

## 4. Identity Verification, Source of Funds and Ongoing Due Diligence

4.1 As a regulated money services business, Align Payments is required by the PCMLTFA and its regulations to identify and verify End Users, to ascertain the nature and intended purpose of the business relationship, to determine beneficial ownership and third-party involvement where applicable, and to conduct ongoing monitoring of the business relationship. Align Payments discharges these obligations directly and independently, using its own personnel, systems and contracted identity verification providers. Align Payments does not delegate, outsource or sub-contract the performance of these obligations to any Developer, and no Developer performs any such function on Align Payments' behalf or as Align Payments' agent or mandatary. By accepting this Agreement you authorise Align Payments and its Delivery Partners to:

* collect, use, verify and disclose your Personal Information, identification documents and supporting information for the purposes of KYC, KYB, EDD, sanctions screening, fraud prevention and ongoing monitoring;
* obtain information about you from credit bureaus, identity verification providers, public records, sanctions and politically exposed persons databases, and other lawful third-party sources;
* share your Personal Information and transaction information with Delivery Partners, banking partners, regulators and law enforcement authorities to the extent required to provide the Align Services and to comply with Applicable Law; and
* require additional information or documentation at any time, including in respect of the source of funds, source of wealth, beneficial ownership, third-party determination and intended use of any Order.

4.2 Representations and warranties regarding Orders. Each Order you submit, and each Order in which you are the beneficiary, constitutes the following representations and warranties by you to Align Payments, made on a continuing basis.

(a) General representations - all Orders. You represent and warrant in respect of each Order that: (i) you are acting on your own behalf, and not as the agent, nominee, trustee or mandatary of any undisclosed third party, and any third-party involvement has been disclosed to Align Payments and accepted by Align Payments in writing; (ii) the Order is not intended, structured or timed to evade, circumvent or defeat any Applicable Law, including any identification, recordkeeping or reporting threshold under the PCMLTFA; (iii) the Order does not involve, directly or indirectly, any person on a Sanctions List or any Restricted Jurisdiction, and is not intended to benefit any such person or Restricted Jurisdiction; and (iv) to the best of your knowledge, the Order is not connected with any money laundering, terrorist financing, fraud, tax evasion or other unlawful activity.

(b) Additional representations - Orders in which you send, transfer or otherwise dispose of funds. Where you are the originator of an Order (including any Order to send, convert, transfer or otherwise dispose of Fiat Currency or Digital Assets), you additionally represent and warrant that: (i) the Fiat Currency or Digital Assets used to fund the Order are legally and beneficially owned by you and are free from any lien, security interest, adverse claim or restriction; (ii) such funds are not, directly or indirectly, the proceeds of any criminal, fraudulent, corrupt or sanctioned activity; and (iii) you have the lawful right and full authority to transfer such funds to or through the Align Services.

(c) Additional representations - Orders in which you receive funds. Where you are the beneficiary of an Order (including any Order in which Fiat Currency or Digital Assets are routed through the Align Services for settlement to your Connected Account or Cryptocurrency Wallet, whether in payment of an invoice, in settlement of a commercial transaction, as remuneration for goods or services provided by you, or otherwise), you additionally represent and warrant that: (i) you are entitled to receive the funds under a bona fide legal relationship or obligation (including, without limitation, an invoice, contract, employment arrangement, or other lawful entitlement); (ii) you have no actual knowledge, and no reason to suspect, that the funds are the proceeds of any criminal, fraudulent, corrupt or sanctioned activity; (iii) you have conducted such due diligence on the payer as is reasonable in the circumstances of your business or personal situation; and (iv) you will promptly notify Align Payments if, after submission of the Order but before or after settlement, you become aware of any fact or circumstance that would cause any of the representations in this Section 4.2 to be inaccurate.

4.3 Permitted disclosures; no breach. You acknowledge and agree that any disclosure made by Align Payments (a) to FINTRAC or any other competent governmental, regulatory, law enforcement, tax or self-regulatory authority, (b) in compliance with any subpoena, court order, search warrant, production order, freezing order or other lawful process, (c) to a Delivery Partner, banking partner, identity verification provider or other service provider for the purposes of providing the Align Services, conducting due diligence, screening, monitoring or compliance, or (d) as otherwise required or permitted by Applicable Law, does not and will not constitute (i) a breach of this Agreement, (ii) a breach of any duty of confidence owed by Align Payments to you, (iii) a violation of your privacy rights, or (iv) any other actionable wrong, and gives rise to no claim, demand or cause of action of any kind against Align Payments or any of its affiliates, Delivery Partners, officers, directors, employees or agents. To the maximum extent permitted by Applicable Law, you irrevocably waive any such claim, demand or cause of action.

4.4 Align Payments may, at its sole discretion, refuse to onboard you, suspend your access, decline to process any Order, freeze funds in transit, place a Compliance Hold, request additional information, or terminate this Agreement, in each case where Align Payments reasonably considers such action necessary or advisable to comply with Applicable Law or with its internal AML, sanctions and risk management policies.

4.5 Response to information requests. You will respond to any request for information, documentation or clarification made by Align Payments (whether at onboarding, during the course of your use of the Align Services, or in connection with any specific Order, including any request to verify the source of funds, source of wealth, purpose of an Order, identity or nature of counterparties, or underlying commercial relationship giving rise to an Order) within forty-eight (48) hours of such request, or within such other timeframe as Align Payments may specify in writing. Where a request is made in connection with an enhanced due diligence process initiated by Align Payments or required by a banking partner, Delivery Partner, correspondent, regulator or other counterparty of Align Payments, timely and complete compliance is a condition of your continued access to the Align Services. Align Payments may suspend, restrict or delay your ability to submit Orders, or decline to execute any pending Order, until the request has been satisfied in full to Align Payments' reasonable satisfaction.

4.7 Notification of material changes. You will notify Align Payments in writing, promptly and in any event within five (5) business days, of any change to information previously provided to Align Payments or of any of the following events: (a) any change to your legal name, residential or registered address, email address, telephone number or other contact details; (b) where you are a legal entity or are acting on behalf of a legal entity, any change to the entity's legal name, jurisdiction of incorporation, registered office, directors, officers or persons exercising significant control, and any change to the ultimate beneficial ownership of the entity (including the addition, removal or change of any individual or entity holding, directly or indirectly, 25 per cent or more of the entity's shares, voting rights or economic interest); (c) any change to your regulatory, licensing or registration status that is relevant to your use of the Align Services; (d) any criminal charge, indictment, conviction, regulatory investigation, enforcement action, asset freeze or sanctions designation involving you or, where you are a legal entity, any of your directors, officers or beneficial owners; (e) any material change to the nature, purpose, frequency, volume or risk profile of your intended use of the Align Services; (f) any insolvency, bankruptcy, receivership or equivalent proceeding affecting you; and (g) any other fact or circumstance that would reasonably be expected to cause any representation or warranty made by you under this Agreement to become inaccurate or misleading. Upon receipt of any such notification, Align Payments may reassess your risk profile and may require additional information, impose conditions on your continued use of the Align Services, place a Compliance Hold, or suspend or terminate this Agreement in accordance with Section 10.

4.8 Consequences of false, incomplete or misleading information. Where you provide, or cause or permit to be provided, to Align Payments any information, document or representation that is false, inaccurate, incomplete, misleading or outdated (whether at onboarding or at any time thereafter), you shall bear the full compliance, regulatory and financial risk arising from such information. You will be liable to Align Payments for any losses, liabilities, costs, expenses, regulatory fines, remediation costs and banking partner penalties incurred by Align Payments, its affiliates or its Delivery Partners as a direct or indirect result. Align Payments' reliance on information submitted or transmitted to it in connection with your use of the Align Services does not constitute a waiver of any of Align Payments' rights or remedies in respect of such information.

4.9 Cooperation with investigations and reviews. You will cooperate fully and in good faith with any investigation, review, audit or request for information conducted by Align Payments in connection with your use of the Align Services, including any investigation or review conducted in response to a request from FINTRAC, a banking partner, a Delivery Partner, a law enforcement authority, a regulator or a court. You will provide truthful, complete and timely responses to all such requests and will make available such records, documents and supporting materials as Align Payments may reasonably require. Your failure to cooperate with any such investigation or review may result in the immediate suspension or termination of your access to the Align Services.

## 5. Sanctions and Travel Rule

5.1 You represent, warrant and undertake on a continuing basis that neither you, nor any beneficial owner, director, officer, controlling person, counterparty or recipient in respect of any Order, is: (a) named on any Sanctions List; (b) located, organised or ordinarily resident in a Restricted Jurisdiction; or (c) owned (50 per cent or more, directly or indirectly, individually or in the aggregate) or controlled by, or acting on behalf of, any such person.

5.2 You acknowledge that under the PCMLTFA and equivalent laws Align and its Delivery Partners are required to obtain, hold and transmit prescribed originator and beneficiary information in respect of electronic funds transfers and virtual currency transfers above prescribed thresholds (the "Travel Rule"). You undertake to provide such information accurately and promptly upon request, and you authorise Align to transmit such information to Delivery Partners, counterparties and other obliged entities to the extent necessary to comply with the Travel Rule.

5.3 You will not use the Align Services to facilitate any transaction involving a Restricted Jurisdiction, a sanctioned person or any activity that would cause Align or any Delivery Partner to breach Applicable Law, including by way of structuring, smurfing or layering.

5.4 Travel Rule for self-hosted and unhosted wallets. Where an Order involves a transfer of Digital Assets to or from a self-hosted, self-custodied or otherwise unhosted Cryptocurrency Wallet (a wallet that is not maintained by a regulated virtual asset service provider, financial institution or other obliged entity), you acknowledge that Align and its Delivery Partners may be required under the PCMLTFA, FINTRAC guidance and equivalent laws and FATF standards in other jurisdictions to (a) obtain and verify additional originator or beneficiary information, including the name, address, date of birth or other identifying information of the counterparty and the nature of the relationship between you and the counterparty, (b) confirm that you have control of the relevant self-hosted wallet, including by means of a satoshi test, micro-deposit, signed message, screenshot or other proof of control reasonably requested by Align, (c) conduct source-of-funds or source-of-wealth checks on the relevant wallet address, and (d) refuse, delay, place on Compliance Hold or report the Order if such information cannot be obtained, cannot be verified or indicates elevated risk. You undertake to provide all such information and proof of control accurately and promptly upon request, and you authorise Align to transmit such information to Delivery Partners, counterparties and other obliged entities to the extent necessary to comply with the Travel Rule and Applicable Law. You acknowledge that failure to provide the required Travel Rule information for transfers involving a self-hosted wallet may result in the Order being refused, cancelled or returned, and that any related exchange rate or market movement risk is borne by you in accordance with Section 7.9.

## 6. Non-Custodial Model; Operational Routing Wallets

6.1 Align operates on a strictly non-custodial, execution-only routing basis. Align does not provide custody, hosted wallets, customer accounts, deposits, stored balances or withdrawal functionality to End Users. You must at all times provide and control your own Connected Account and/or Cryptocurrency Wallet for the purpose of funding Orders and receiving the proceeds of Orders.

6.2 Operational Routing Wallets and Settlement Infrastructure may be used solely as technical steps to route, execute and settle a specific Order. They (a) are not allocated to any End User, (b) do not represent any End User balance, (c) are not accessible by End Users, (d) do not provide deposit, storage, balance or withdrawal functionality, and (e) do not create any customer account or custodial relationship with Align.

6.3 You must not deposit Fiat Currency or Digital Assets to any Operational Routing Wallet expecting account-like features, stored balances, exchange-on-demand or later withdrawals. Funds sent to an Operational Routing Wallet otherwise than in connection with a valid pending Order may be lost and Align disclaims all liability in respect of such funds.

6.4 You are solely responsible for the security of your Connected Account and Cryptocurrency Wallet, including the safekeeping of any private keys, seed phrases, passwords or credentials. Align has no ability to recover lost private keys or to reverse transactions executed on a blockchain.

6.5 No custody; self-custody is your responsibility. For the avoidance of doubt, Align Payments does not provide, and does not hold itself out as providing, custody, safekeeping, hosted wallet, deposit-taking, stored balance, account, escrow, trust or similar services to End Users in respect of any Fiat Currency or Digital Asset. You are solely responsible for the self-custody of all your Fiat Currency and Digital Assets at all times before, during and after the execution of any Order, including (a) the selection, configuration, security and operation of your Connected Account and your Cryptocurrency Wallet, (b) the safekeeping, backup and recovery of all private keys, seed phrases, passphrases, recovery codes, two-factor authentication devices and other access credentials, (c) the accuracy of all addresses, network selections and destination details, and (d) the assessment of any custodian, wallet provider, exchange or other third party you choose to use. Align owes no fiduciary, custodial, safekeeping or trust duty to you in respect of any Asset and is not liable for any loss, theft, freezing, seizure, inaccessibility or destruction of Assets held in or sent to your Connected Account, your Cryptocurrency Wallet or any third-party wallet, account or platform that is not operated by Align.

6.6 Sole ownership and control; own funds only. You represent, warrant and undertake on a continuing basis that (a) your Connected Account and your Cryptocurrency Wallet are at all times under your sole ownership or control, (b) you are the sole legal and beneficial owner of all Fiat Currency and Digital Assets that you use, transfer, convert or settle through the Align Services, (c) all such Assets are lawfully sourced and held by you free from any third-party claim or encumbrance other than as disclosed to Align in writing, and (d) you are not acting as a nominee, trustee, agent, intermediary, money remitter or money services business for any third party, nor are you processing Orders for or on behalf of any other person, unless this has been expressly disclosed to and accepted by Align in writing in advance. You may use the Align Services only in respect of your own funds and your own Orders. Align may suspend, refuse, delay or cancel any Order, and place any Order on Compliance Hold under Section 7.6, where Align suspects on reasonable grounds that you do not own or control your Connected Account or your Cryptocurrency Wallet, that the Assets used to fund the Order do not belong to you, or that the Order is being placed for or on behalf of a third party. Align is not required to establish actual breach before exercising this right. Any breach of this Section 6.6 is a material breach of this Agreement and may result in immediate suspension or termination under Section 10, the placing of affected Orders on Compliance Hold under Section 7.6, and the filing of reports with competent authorities under Applicable Law.

## 7. Orders, Pricing, Settlement and Finality

7.1 Each Order constitutes your instruction to Align Payments to execute and settle that specific Order, on a principal basis, in accordance with the parameters submitted via the Align Services. Align Payments may accept or decline any Order in its sole discretion. Align Payments does not act as your agent, mandatary, broker, fiduciary or trustee in respect of any Order.

7.2 Quotes provided through the Align Services are indicative until executed. Align does not guarantee any particular price, spread, liquidity, execution venue, routing path, speed of execution or settlement time, except where expressly agreed in writing with your Developer.

7.3 Fees applicable to Orders, including Align fees, Delivery Partner fees, network fees and exchange fees, may be deducted from the proceeds of Orders. The fees applicable to your use of the Align Services are disclosed by your Developer prior to the submission of an Order. By submitting an Order you accept the fees disclosed at the time of submission.

7.4 You are solely responsible for the accuracy and completeness of all settlement details, including wallet addresses, blockchain network selections, memo or destination tags, bank account numbers, sort codes, IBANs, SWIFT/BIC codes, beneficiary names and any other information required to effect settlement. Where you provide such details (including where such details are transmitted to Align Payments through your Developer's technical integration) and Align Payments settles the Order in accordance with such details, the settlement is final and irrevocable, and you bear all risks, losses and costs associated with any attempted recovery. Align Payments has no obligation to recover funds sent to incorrect, inaccessible or unsupported destinations. The transmission of settlement details through a Developer's integration does not make the Developer responsible for the accuracy of such details and does not constitute the performance of any function by the Developer on behalf of Align Payments.

7.5 All executed Orders are final once settled on the relevant blockchain network or payment rail. The finality provisions of this Section 7 do not affect any non-waivable statutory rights you may have as a consumer under Applicable Law, nor do they limit any refund or remediation that Align elects to provide in respect of mis-execution caused solely by Align.

7.6 Align may delay, suspend, cancel, reverse or refuse to execute any Order, or place an Order on Compliance Hold, where Align reasonably considers such action necessary or advisable to comply with Applicable Law, sanctions screening, fraud monitoring, Travel Rule obligations, risk controls or Delivery Partner requirements. During any Compliance Hold, Align does not maintain any End User balance and you have no right to direct or withdraw funds in transit other than through completion or cancellation of the affected Order in accordance with this Agreement.

7.7 Where an Order is cancelled or cannot be executed or settled, Align may, where feasible and subject to Applicable Law, network conditions and Delivery Partner processes, coordinate the return of funds via the originating rail. Outcomes and timelines are not guaranteed.

7.8 If you fail to provide sufficient funds or if a return results in an amount due and owing by you to Align (a "Negative Balance"), Align may (a) charge interest on the Negative Balance at a commercially reasonable rate, (b) offset the Negative Balance against any amounts otherwise payable by Align to you, and (c) pursue any other remedy available under Applicable Law.

7.9 Exchange rate risk during Compliance Holds and delays. Where an Order involves a conversion between two Assets (including, for example, a conversion from EURC to USD or any other Fiat Currency or Digital Asset pair), you acknowledge and accept that the applicable exchange rate is the rate at which the Order is actually executed and settled, and not the rate quoted at the time the Order was submitted. If an Order is placed on Compliance Hold, suspended, delayed or otherwise prevented from completing in a timely manner due to (a) sanctions, AML/CTF or Travel Rule screening, (b) verification, due diligence or information requests, (c) action or inaction by any Delivery Partner, bank, payment service provider, blockchain network or other third party, (d) any Compliance Hold or lawful request from a competent authority, or (e) any other cause outside Align’s reasonable control, the Order will, if and when it is released, be executed and settled at the exchange rate prevailing at the time of execution. Align is not liable for any loss, cost, expense, foregone gain or other adverse consequence arising from any movement in exchange rates, market prices, spreads or liquidity between the time the Order was submitted and the time it is actually executed and settled, and you bear all such exchange rate and market risk in full. Nothing in this Section 7.9 affects any non-waivable statutory rights you may have as a consumer under Applicable Law.

7.10 Fees, third-party deductions, returns and scope of responsibility. All Align fees, and all Delivery Partner, banking, intermediary, network and exchange or conversion fees and costs, incurred in connection with an Order are earned and payable when incurred and are non-refundable, whether or not the Order completes. Where an Order is for any reason not processed, rejected, cancelled, reversed, returned or refunded - including where it is not processed by a bank, Delivery Partner or other third party, by Align, as a result of any Compliance Hold, or because of inaccurate, incomplete or unsupported settlement details provided by you or your Developer - all such fees and costs already incurred will be deducted from, and borne by you out of, any amount returned to you, and Align will return only the net amount it actually recovers after deduction of all such fees and costs and any applicable exchange-rate difference. Align is under no obligation to refund or return any amount it has not itself recovered, and where funds cannot be recovered (including where you or your Developer provided an incorrect, inaccessible or unsupported destination) no refund is payable. You further acknowledge that correspondent, intermediary or beneficiary institutions may deduct their own charges from a transfer, such that the amount received may be less than the amount sent, and Align is not responsible for any such third-party deduction. Align's responsibility for an Order ends when funds are dispatched to the destination you or your Developer specified; any subsequent recall, amendment or return is undertaken on a best-efforts basis only, is not guaranteed, and is at your cost. This Section 7.10 is without prejudice to Sections 7.3, 7.4, 7.5, 7.7, 7.8 and 7.9, and nothing in this Section affects any non-waivable statutory rights you may have as a consumer under Applicable Law.

## 7.11 Settlement timing; no liability for delay. You acknowledge that the time taken to initiate, process, settle, receive or complete any incoming or outgoing transfer, payment, conversion or payout is determined in whole or in part by banks, payment service providers, Delivery Partners, correspondent and intermediary institutions, blockchain networks, market infrastructure and other third parties outside Align's control, and may also be affected by Compliance Holds, sanctions, AML/CTF, Travel Rule or fraud screening, verification or information requests, cut-off times, banking hours, weekends, public holidays, network congestion and events of Force Majeure. Any processing, settlement or delivery time communicated to you or your Developer is an estimate only, is not guaranteed, and time is not of the essence. To the maximum extent permitted by Applicable Law, Align is not liable for any loss, cost, expense, foregone gain, exchange-rate movement or other adverse consequence arising from the timing of, or any delay in, any transfer or Order, however long it takes, and you accept and bear all such timing risk. Align's rights under Section 7.6 and the exchange-rate allocation in Section 7.9 are unaffected. Nothing in this Section affects any non-waivable statutory rights you may have as a consumer under Applicable Law.

## 8. Risk Disclosures

8.1 You acknowledge and accept that Digital Assets and Stablecoins involve significant risks. Without limitation:

* Stablecoins are not legal tender in Canada or in any other jurisdiction in which Align operates and are not deposits insured by the Canada Deposit Insurance Corporation, the Financial Services Compensation Scheme or any equivalent scheme;
* the value of Digital Assets, including Stablecoins, is highly volatile and may decline to zero;
* Stablecoin issuers may fail to maintain adequate reserves, may be subject to enforcement action, may freeze or seize tokens, and may discontinue redemption;
* blockchain networks are subject to congestion, increased fees, smart contract vulnerabilities, protocol changes, forks and complete or partial failure;
* the regulatory treatment of Digital Assets is evolving rapidly and may materially affect the value, transferability or legality of any Digital Asset;
* the loss, theft or destruction of a private key may result in the irreversible loss of Digital Assets;
* cybersecurity events affecting Digital Assets, wallets, exchanges or blockchain networks may result in immediate and irreversible loss; and
* Align does not provide investment, legal, tax or accounting advice, and nothing in the Align Services constitutes a recommendation to enter into any Order.

8.2 You confirm that you have read, understood and accepted these risks before submitting any Order.

## 9. Prohibited Activities

9.1 You must not use the Align Services, directly or indirectly, in connection with any of the following:

* any activity that violates Applicable Law or any order of a court or competent authority;
* money laundering, terrorist financing, proliferation financing, fraud, market manipulation, tax evasion, bribery or corruption;
* any dealing with a person on a Sanctions List or with a Restricted Jurisdiction;
* unlicensed money services, unlicensed securities or derivatives activity, or any other regulated activity for which the necessary authorisations have not been obtained;
* unlawful gambling, unlawful adult content, unlawful firearms or weapons, illegal drugs, drug paraphernalia or controlled substances, counterfeit or stolen goods, or human trafficking;
* ransomware, malware, phishing, credential harvesting, account takeover, mixing or tumbling services intended to obscure the origin of funds, or other cyber-enabled crime;
* multi-level marketing, pyramid schemes, Ponzi schemes or other unfair, predatory or deceptive practices;
* high-yield investment programmes, unregistered initial coin offerings or other unregistered securities offerings;
* transactions structured for the purpose of evading any reporting threshold under the PCMLTFA or equivalent laws; and
* any other activity prohibited by Align or its Delivery Partners and notified to you or to your Developer from time to time.

## 10. Suspension and Termination

10.1 Align may, at any time and with or without prior notice, suspend, restrict or terminate your access to the Align Services, decline to process any Order, freeze funds in transit and/or terminate this Agreement, where: (a) Align is required to do so by Applicable Law, by an order of a competent authority, or by a Delivery Partner; (b) Align reasonably suspects a breach of this Agreement, of any AML, sanctions or risk policy, or of Applicable Law; (c) Align reasonably suspects fraud, abuse or unauthorised activity; (d) your Developer ceases to use the Align Services or terminates your access; (e) you cease to satisfy the eligibility criteria in Section 2; or (f) Align is unable to verify any information provided by you.

10.2 You may stop using the Align Services at any time by ceasing to submit Orders through your Developer. Termination does not affect any right or obligation that has accrued prior to termination, and Sections 1, 4, 5, 7.4, 7.5, 7.8, 8, 9, 11, 12, 13, 14, 15, 16 and 17 of this Agreement, together with any other provision that by its nature should survive, will survive termination.

## 11. Privacy and Data Protection

11.1 Align Payments processes your Personal Information in accordance with its Privacy Policy, which is incorporated into this Agreement by reference. The Privacy Policy describes the categories of Personal Information collected, the purposes for which they are processed, the recipients of Personal Information, international transfer arrangements, retention periods, and your rights in respect of your Personal Information under applicable Canadian privacy legislation.

11.2 You acknowledge that Align Payments acts as the organisation responsible for Personal Information processed in connection with the Align Services, including for the purposes of KYC, KYB, EDD, sanctions screening, fraud prevention, AML/CFT compliance, regulatory reporting and the security of the Align Services. Align Payments is required to retain certain Personal Information for the periods required by the PCMLTFA and its regulations (which generally require retention for at least five (5) years following the end of the business relationship or the date of the relevant transaction).

11.3 You authorise Align Payments to transfer your Personal Information across borders, including to jurisdictions outside Canada where Align Payments or its Delivery Partners operate, subject to appropriate safeguards as required by applicable Canadian privacy legislation. Where you are resident in the Province of Quebec, you acknowledge that transfers of Personal Information outside Quebec are subject to a privacy impact assessment conducted by Align Payments in accordance with the Act respecting the protection of personal information in the private sector (CQLR c P-39.1).

11.4 You acknowledge that PIPEDA and equivalent provincial privacy legislation expressly permit the collection, use and disclosure of personal information without the knowledge or consent of the individual where such collection, use or disclosure is required or authorised by law, including for the purposes of complying with the PCMLTFA, sanctions legislation, court orders, subpoenas, search warrants, production orders and other lawful process. Nothing in this Agreement, in Align Payments' Privacy Policy, or in any duty owed by Align Payments to you, restricts Align Payments from making any such collection, use or disclosure, and any such collection, use or disclosure does not constitute a breach of this Agreement, of the Privacy Policy, of any duty of confidence, or of any privacy right. The provisions of this Section 11.4 are without prejudice to, and are reinforced by, Section 4.4 (Permitted disclosures; no breach).

## 12. Electronic Communications and Records

12.1 You consent to receive all notices, disclosures, agreements, statements, records, receipts and other communications relating to the Align Services in electronic form, whether through your Developer's interface, by email, by API response or by any other electronic means. Your consent applies to all communications that Align would otherwise be required to provide in paper form under Applicable Law, to the extent permitted by such law.

12.2 To access and retain electronic communications you must have a device with internet access, a current web browser, an active email address, and the ability to view and retain documents in PDF or HTML format. You are responsible for keeping your contact information current with your Developer.

12.3 You may withdraw your consent to receive electronic communications by ceasing to use the Align Services. Align does not offer paper communications to End Users; withdrawal of consent will result in termination of your access to the Align Services.

12.4 An electronic acceptance of this Agreement, including via API, has the same legal effect as a handwritten signature, and electronic records maintained by Align constitute admissible evidence of the matters they record to the fullest extent permitted by Applicable Law.

## 13. Representations and Warranties

13.1 You represent, warrant and undertake to Align Payments on a continuing basis that: (a) you have the legal capacity and authority to enter into and perform this Agreement; (b) your acceptance of and performance under this Agreement does not violate any Applicable Law or any agreement to which you are a party; (c) all information you provide to Align Payments (whether directly or transmitted through a Developer's technical integration at your direction) is true, accurate, complete and current; (d) you are not using the Align Services on behalf of any undisclosed third party; (e) you will use the Align Services solely for lawful purposes; and (f) you have read and understood the risk disclosures in Section 8.

## 14. Disclaimer of Warranties

14.1 THE ALIGN SERVICES ARE PROVIDED ON AN "AS IS" AND "AS AVAILABLE" BASIS. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, ALIGN, ITS AFFILIATES AND ITS DELIVERY PARTNERS DISCLAIM ALL REPRESENTATIONS, WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, ACCURACY, RELIABILITY, AVAILABILITY OR THAT THE ALIGN SERVICES WILL BE UNINTERRUPTED OR ERROR-FREE. NOTHING IN THIS SECTION 14 EXCLUDES OR LIMITS ANY WARRANTY THAT CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.

## 15. Limitation of Liability

15.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, NEITHER ALIGN PAYMENTS NOR ANY OF ITS AFFILIATES, DELIVERY PARTNERS, OFFICERS, DIRECTORS, EMPLOYEES, AGENTS OR REPRESENTATIVES WILL BE LIABLE TO YOU FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY OR PUNITIVE DAMAGES, OR FOR ANY LOSS OF PROFITS, REVENUES, BUSINESS, GOODWILL, DATA, TRADING OPPORTUNITIES OR ANTICIPATED SAVINGS, ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT OR YOUR USE OF THE ALIGN SERVICES, WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE), STATUTE OR OTHERWISE, AND WHETHER OR NOT ALIGN PAYMENTS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

15.2 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, NEITHER ALIGN PAYMENTS NOR ANY OF ITS AFFILIATES, DELIVERY PARTNERS, OFFICERS, DIRECTORS, EMPLOYEES, AGENTS OR REPRESENTATIVES WILL BE LIABLE TO YOU FOR ANY LOSS, DAMAGE, LIABILITY, COST OR EXPENSE ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT, YOUR USE OF THE ALIGN SERVICES, ANY ORDER, OR ANY ACTIVITY CONDUCTED THROUGH THE ALIGN SERVICES, EXCEPT TO THE EXTENT, AND ONLY TO THE EXTENT, THAT SUCH LOSS, DAMAGE, LIABILITY, COST OR EXPENSE IS DIRECT, ACTUAL, AND HAS BEEN FINALLY DETERMINED BY A COURT OF COMPETENT JURISDICTION TO HAVE RESULTED SOLELY FROM THE GROSS NEGLIGENCE, WILFUL MISCONDUCT OR FRAUD OF ALIGN PAYMENTS ITSELF.

15.3 Nothing in this Agreement excludes or limits any liability that cannot be excluded or limited under Applicable Law, including:

(a) liability for fraud or fraudulent misrepresentation;

(b) in respect of consumer End Users, any non-waivable statutory rights or remedies under applicable provincial consumer protection legislation, including the Ontario Consumer Protection Act, 2002 and the equivalent legislation of other Canadian provinces and territories;

(c) in respect of consumer End Users resident in the Province of Quebec, any liability that cannot be limited under the Consumer Protection Act (CQLR c P-40.1), articles 1474 and 1437 of the Civil Code of Québec, or any other mandatory rule of Quebec law, including liability for bodily or moral injury and liability arising from intentional or gross fault; and

(d) liability for death or personal injury caused by negligence.

Nothing in this Agreement affects any non-waivable statutory rights you may have as a consumer. The limitations and exclusions in this Section 15 will be applied to the maximum extent permitted by Applicable Law, and the invalidity or unenforceability of any part of this Section 15 in any jurisdiction will not affect the validity or enforceability of the remainder of this Section 15 or of this Agreement.

15.4 Without limiting the generality of Sections 15.1 and 15.2, and to the maximum extent permitted by Applicable Law, Align Payments will have no liability to you for any loss, damage, liability, cost or expense arising out of or resulting from:

(a) any act or omission of you, any Developer, any counterparty to an Order, any recipient of the proceeds of an Order, or any other third party;

(b) any act, omission, failure, insolvency, suspension or default of any Delivery Partner, banking partner, identity verification provider, blockchain node operator, exchange, custodian or other third-party service provider;

(c) any characteristic, condition, event, congestion, fee change, smart-contract vulnerability, protocol change, fork, reorganisation, consensus failure, complete or partial failure, or other feature of any blockchain, distributed ledger, payment network or settlement rail on which an Order is executed or settled;

(d) any error, omission or inaccuracy in settlement details, wallet addresses, network selections, memo or destination tags, bank account details, beneficiary information or other instructions provided by you or transmitted through a Developer's integration at your direction, or any loss of funds sent to an incorrect, inaccessible or unsupported destination;

(e) any Compliance Hold, suspension, restriction, freezing, seizure, delay, cancellation, reversal, clawback, refusal to execute or refusal to settle undertaken by Align Payments, any Delivery Partner or any other person in order to comply with Applicable Law, a sanctions regime, a subpoena, court order, production order, freezing order or other lawful process, or the internal compliance policies of Align Payments or any Delivery Partner;

(f) any reporting to FINTRAC or any other competent governmental, regulatory, law enforcement, tax or self-regulatory authority as described in Sections 4.3 and 4.4;

(g) any unauthorised access to, or use of, your Connected Account, your Cryptocurrency Wallet, your private keys, your device, your Developer account or any credentials by which you access the Align Services;

(h) any interruption, suspension, scheduled or unscheduled downtime, error, delay, deficiency or unavailability of the Align Services, any Developer's product, any Delivery Partner's systems, any telecommunications or internet service, or any other system or network outside Align Payments' direct control;

(i) any event of force majeure as described in Section 17;

(j) any change in the market value, liquidity, redeemability or regulatory status of any Fiat Currency, Digital Asset or Stablecoin; and

(k) any decision by Align Payments to add, remove, suspend or cease support for any Fiat Currency, Digital Asset, Stablecoin, blockchain network, payment rail or Delivery Partner.

## 16. Indemnification

16.1 To the maximum extent permitted by Applicable Law, you will defend, indemnify and hold harmless Align Payments, its affiliates, its Delivery Partners and their respective officers, directors, employees, agents and representatives from and against any and all claims, demands, actions, proceedings, losses, liabilities, damages, costs and expenses (including reasonable legal fees) arising out of or in connection with: (a) your breach of this Agreement; (b) your violation of any Applicable Law; (c) your infringement of the rights of any third party; (d) any inaccurate or incomplete information provided by you (including information transmitted through a Developer's integration at your direction); (e) any Order submitted by you through the Align Services; and (f) any third-party claim arising out of your use of the Align Services.

## 17. Force Majeure

17.1 Align will not be liable for any delay in or failure of performance arising directly or indirectly from any cause beyond its reasonable control, including acts of God, natural disasters, pandemics, epidemics, war, terrorism, civil unrest, government action, sanctions, changes in Applicable Law, strikes, labour disputes, market disruption, blockchain congestion or failure, banking system failure, telecommunications or internet failure, cyber-attacks, denial-of-service attacks or any failure or interruption of the services of any Delivery Partner.

## 18. Governing Law, Arbitration and Dispute Resolution

18.1 This Section 18 provides two dispute-resolution regimes. The terms in this Section 18.1 apply to every End User. If you are a Non-Consumer End User, Section 18.2 also applies to you. If you are a Consumer, Section 18.3 also applies to you and the arbitration regime in Section 18.2 does not apply to you. If there is any doubt as to whether you are a Consumer, you are treated as a Consumer and Section 18.3 applies.

18.1.1 This Agreement, and any dispute or claim (including any non-contractual dispute or claim) arising out of or in connection with it, its subject matter or its formation, is governed by the laws of the Province of Ontario and the federal laws of Canada applicable therein, without regard to any conflict-of-law rule requiring the application of another law. This does not deprive a Consumer of any mandatory protection conferred by the law of the Consumer's place of ordinary residence.

18.1.2 The United Nations Convention on Contracts for the International Sale of Goods (Vienna, 1980) does not apply.

18.1.3 Nothing in this Section 18 limits the obligations of Align Payments under the PCMLTFA and its regulations or the supervisory authority of FINTRAC.

18.1.4 This Section 18 survives termination or expiry of this Agreement.

18.2 This Section 18.2 applies to you, in addition to Section 18.1, if you are a Non-Consumer End User.

18.2.1 Every dispute, controversy or claim arising out of or in connection with this Agreement, including its existence, validity, performance, breach or termination, and including non-contractual claims (a "Dispute"), is referred to and finally resolved by binding arbitration and not the Courts, save for interim relief under Section 18.2.3(b) and Align Payments' rights under Section 18.2.11.

18.2.2 Before commencing any arbitration, you must give Align Payments written notice of the Dispute and attempt to negotiate in good faith for thirty (30) days to resolve the Dispute. Each party will nominate a representative with authority to settle, and those representatives will confer at least once during the negotiation period, in person or by videoconference.

18.2.3 If the Dispute is not resolved within the thirty (30)-day period under Section 18.2.2, the claimant may commence arbitration. Expiry of that period without resolution is a condition precedent to arbitration, and the tribunal has no jurisdiction over a Dispute referred before it expires.

18.2.3(a) The agreement to arbitrate in this Section 18.2 (the "Arbitration Agreement") is a distinct and severable agreement, unaffected by the invalidity, illegality, termination or non-existence of the rest of this Agreement, and is governed by the laws of the Province of Ontario.

18.2.3(b) A party may seek interim or conservatory relief only from the arbitral tribunal (once constituted) or from an emergency arbitrator under the Emergency Arbitrator Provisions of the ICC Rules, and not from any court. To the extent a mandatory rule of the seat confers a right to apply to a court for interim measures that cannot be excluded by agreement, any such application may be made only to the Courts, only where the emergency arbitrator or tribunal cannot provide effective or timely relief, and without waiving the Arbitration Agreement.

18.2.4 The seat of arbitration is Toronto, Ontario. The proceedings are governed by the law of that seat: the International Commercial Arbitration Act, 2017 (Ontario) where the arbitration is international, and otherwise the Arbitration Act, 1991 (Ontario). The arbitration is administered under the ICC Rules, before a sole arbitrator unless the amount in dispute exceeds CAD 2,000,000 (or equivalent), in which case three arbitrators are appointed under those Rules.

18.2.5 The language of the arbitration is English.

18.2.6 Disputes are arbitrated only on an individual basis. You waive any right to bring, participate in, or act as a representative in any class, collective, consolidated or representative proceeding, and the arbitrator may not proceed on a class or representative basis. This Section 18.2.6 does not limit Align Payments' consolidation and joinder rights under Section 18.2.9(b).

18.2.7 The arbitration and all notices, pleadings, evidence, submissions and awards in it are confidential, save where disclosure is required by applicable law, by a regulator or to enforce or challenge an award.

18.2.8 The award is final and binding from the date it is made. To the maximum extent such rights may be excluded by agreement, you waive any right of appeal to, or recourse before any court on the merits of the award. You acknowledge enforceability under the New York Convention.

18.2.9 The arbitrator shall award costs, including reasonable legal and arbitration costs, in accordance with the ICC Rules, normally following the event but having regard to the parties' relative success and conduct. This Section 18.2.9 does not limit Align Payments' indemnity under Section 16.

18.2.9(a) The arbitrator has no power to award, and you waive any claim to, any punitive, exemplary, aggravated, indirect or consequential damages, and the arbitrator shall give full effect to the limitations and exclusions of liability in Section 15 of this Agreement.

18.2.9(b) Align Payments may, at its option, consolidate, or require the joinder of two or more arbitrations or related Disputes involving common questions of law or fact. You may not consolidate or join Disputes without Align Payments' written consent.

18.2.10 A Dispute must be commenced within one (1) year after the claimant first knew or ought reasonably to have known of the matters giving rise to it, failing which the claim is barred to the extent permitted by applicable law. This one-year limitation does not apply to any claim brought by Align Payments against you, including any claim to recover amounts owed by you or any Negative Balance under Section 7.8, which remain subject to the applicable statutory limitation period. This Section 18.2.10 does not apply to an individual Non-Consumer End User.

18.2.11 Align Payments may bring proceedings against you in any court of competent jurisdiction to enforce this Agreement, recover amounts owed, trace, freeze or recover funds or assets, obtain injunctive, interim, conservatory or equitable relief, or enforce any judgment or award, and may bring concurrent proceedings in more than one jurisdiction.

18.2.12 Proportionate procedure for individual and small-value Disputes. Where you are an individual Non-Consumer End User, or where the amount in dispute does not exceed CAD 50,000 (or its equivalent): (a) the Dispute is not administered under the ICC Rules but is instead resolved by a sole arbitrator, seated in Toronto, Ontario, under the Simplified Arbitration Rules of the ADR Institute of Canada (ADRIC) or, at the claimant's election, a simplified arbitration under the Arbitration Act, 1991 (Ontario), each of which provides a lower-cost procedure; (b) unless the arbitrator directs otherwise, the arbitration is conducted on a documents-only basis or by videoconference, without an in-person hearing; and (c) where you are an individual Non-Consumer End User, you may instead elect to bring the Dispute in the Small Claims Court of Ontario or the small-claims court of your place of ordinary residence, and Align Payments will not object to that election. The agreement to arbitrate and the class-action waiver in Section 18.2.6 continue to apply to any Dispute resolved under this Section 18.2.12. No provision of this Section 18.2 will be applied so as to deny you a fair and accessible opportunity to pursue or defend a Dispute.

18.2.13 Severability of the Arbitration Agreement. If any provision of this Section 18.2 is held invalid or unenforceable, it is severed and the remainder of this Section 18.2, including the agreement to arbitrate, continues in full force, and the provision is modified to the minimum extent necessary to render it valid and enforceable.

18.3 This Section 18.3 applies to you, in addition to Section 18.1, if you are a Consumer. The arbitration regime in Section 18.2 does not apply to you.

18.3.1 You are not required to arbitrate any dispute. Disputes between you and Align Payments are resolved in court.

18.3.2 Nothing in this Agreement limits or derogates from any mandatory protection conferred on you by Applicable Law, including the law of your place of ordinary residence.

18.3.3 You irrevocably submit to the jurisdiction of the Courts for any dispute between you and Align Payments and, to the maximum extent permitted by applicable law, waive any objection to the Courts on the grounds of venue or forum non conveniens. You may bring proceedings in the courts of your place of ordinary residence only to the extent the mandatory law of that place confers on you a right to do so that cannot be excluded by agreement. Align Payments may bring proceedings against you in the Courts, and may bring proceedings in the courts of your place of ordinary residence where it elects to do so or where the mandatory law of that place requires that you be sued only there.

18.3.4 Notwithstanding Section 18.3.3, Align Payments may bring proceedings in any court of competent jurisdiction to enforce any judgment, recover amounts owed, or obtain injunctive, conservatory, freezing or tracing relief against you or your assets, and may bring concurrent proceedings in more than one jurisdiction, in each case to the extent permitted by applicable law.

## 19. Changes to this Agreement

19.1 Align may amend this Agreement at any time by posting an updated version at <https://docs.alignlabs.dev/legal/end-user-agreement> or by notifying you (or your Developer) by other electronic means. Any amendment will become effective on the date specified in the notice or, if no date is specified, immediately upon posting. Your continued use of the Align Services after the effective date constitutes your acceptance of the amended Agreement. If you do not agree to an amendment, your sole remedy is to cease using the Align Services.

19.2 Where an amendment is materially adverse to you and you are a consumer, Align will use reasonable efforts to provide at least thirty (30) days' prior notice, except where a shorter notice period is required by Applicable Law or to address a security or legal risk.

## 20. Miscellaneous

20.1 Entire Agreement. This Agreement, together with the Privacy Policy and any additional terms expressly incorporated by reference, constitutes the entire agreement between you and Align in respect of the Align Services and supersedes all prior and contemporaneous understandings, agreements, representations and warranties.

20.2 Severability. If any provision of this Agreement is held to be invalid, illegal or unenforceable, that provision will be modified to the minimum extent necessary to make it valid, legal and enforceable, and the remaining provisions will continue in full force and effect.

20.3 No Waiver. The failure of Align to enforce any provision of this Agreement does not constitute a waiver of that or any other provision.

20.4 Assignment. You may not assign or transfer this Agreement or any of your rights or obligations hereunder without Align's prior written consent. Align may assign or transfer this Agreement, in whole or in part, to any affiliate or to any successor in interest in connection with a merger, acquisition, reorganisation or sale of all or substantially all of its assets.

20.5 Subcontracting. Align may engage Delivery Partners, affiliates, subcontractors or other third parties to perform any of its obligations under this Agreement. Align remains responsible for the performance of its obligations under this Agreement.

20.6 Third-Party Rights. Except as expressly set out in this Section 20.6, no person who is not a party to this Agreement has any right to enforce any term of this Agreement. Each Delivery Partner and each director, officer, employee, agent and representative of Align Payments may enforce the provisions of Sections 14, 15 and 16 for its own benefit.

20.7 Language. This Agreement is concluded in the English language. Any translation provided is for convenience only and the English version prevails. The parties have expressly required that this Agreement and all related documents be drawn up in the English language. Les parties ont expressément exigé que la présente convention et tous les documents s'y rapportant soient rédigés en langue anglaise.

20.8 Headings. Section headings are for convenience only and do not affect the interpretation of this Agreement.

20.9 Notices. Align Payments will send notices to you through your Developer or to the email address associated with your use of the Align Services. You may send notices to Align Payments by email to <compliance@alignlabs.dev>, marked for the attention of the Chief Compliance Officer of Align Payments Ltd. Notices sent by email are deemed received on the next business day following transmission, provided no delivery-failure response is received.

## 21. Regulatory Disclosures

21.1 Align Payments Ltd is registered with FINTRAC as a money services business and is authorised to deal in virtual currencies and to conduct foreign exchange dealing and the remittance and transmission of funds, in each case as set out in its FINTRAC registration. Information about FINTRAC and the obligations of money services businesses is available at [www.fintrac-canafe.gc.ca](http://www.fintrac-canafe.gc.ca).

21.2 Align Payments Ltd does not hold a banking licence and is not a member of the Canada Deposit Insurance Corporation ("CDIC") or any equivalent deposit protection or investor compensation scheme. Funds in transit through the Align Services are not deposits, are not insured by CDIC or any similar scheme, and are not protected by any investor compensation fund.

21.3 Complaints concerning the Align Services may be addressed to <compliance@alignlabs.dev>. Align will acknowledge complaints within two (2) business days and aim to respond substantively within fifteen (15) business days. If you are not satisfied with Align's response, you may have the right to escalate your complaint to a competent regulator or ombudsman in your jurisdiction, including (where applicable) FINTRAC in Canada.

## 22. Acknowledgement

BY CLICKING "I ACCEPT", BY CAUSING YOUR DEVELOPER TO TRANSMIT YOUR ACCEPTANCE THROUGH THE ALIGN APPLICATION PROGRAMMING INTERFACE, OR BY OTHERWISE USING THE ALIGN SERVICES, YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, THAT YOU UNDERSTAND IT, THAT YOU ACCEPT THE RISK DISCLOSURES IN SECTION 8, AND THAT YOU AGREE TO BE BOUND BY ITS TERMS.

<br>


# Developer Terms

These Developer Terms (the "**Terms**") govern access to and use of the Align API and the Services. Please read them carefully. They form a binding legal agreement.

### Acceptance

By executing an Order Form that references these Terms, by creating a developer account, or by accessing or using the API - whichever occurs first - the entity doing so ("**Developer**") agrees to be bound by these Terms, together with the Data Transfer and Consent Addendum set out in Schedule 1 and any applicable Order Form (together, the "**Agreement**"). If you accept these Terms on behalf of an organisation, you represent that you are authorised to bind that organisation.

### Parties

This Agreement is entered into between:

**Align Payments Ltd**, a company incorporated in Canada with MSB registration number N300000203 and registered office at 130 Spadina Avenue, Unit 807, Toronto, Ontario, Canada, M5V2L4, acting on its own behalf and on behalf of its Affiliates (together, "**Align**"); and

**Developer**, being the entity that accepts these Terms in accordance with the Acceptance section above,

each a "**Party**" and together the "**Parties**."

***

### 1. Definitions

In this Agreement, unless the context requires otherwise:

"**Applicable Law**" means all laws, regulations, rules, orders, directives, and guidance applicable to a Party's performance under this Agreement, including AML, CFT, sanctions, data protection, and financial services laws in each relevant jurisdiction.

"**API**" means the Align application programming interface, including all endpoints, documentation, SDKs, and related tools made available by Align to Developer.

"**Align Data**" means all data collected or generated by Align in connection with an End-User's use of the Services, including KYC/KYB verification data, Transaction data, sanctions screening results, compliance records, and service information.

"**Affiliate**" means, in respect of Align Payments Ltd, any entity that directly or indirectly controls, is controlled by, or is under common control with Align Payments Ltd from time to time. For this purpose, "control" means the power to direct the management or policies of an entity, directly or indirectly, through the ownership of 25% or more of a class of voting securities or equivalent ownership interest. References to "Align" in this Agreement include Align Payments Ltd and each of its Affiliates. Any rights, obligations, protections, and indemnities conferred on Align under this Agreement extend to and may be enforced by each Affiliate. Align Payments Ltd shall remain primarily responsible for performance of Align's obligations under this Agreement.

"**Banking Partner**" means any Canadian or foreign bank, trust company, credit union, money services business, payment processor, card network, or stablecoin issuer that Align engages to facilitate the settlement, funding, conversion, or routing of Transactions under the Services.

"**Business Day**" means a day (other than a Saturday, Sunday, or public holiday) on which banks are open for general business in Ontario, Canada.

"**Confidential Information**" means all information disclosed by one Party to the other in connection with this Agreement that is designated as confidential or that a reasonable person would understand to be confidential, including technical, commercial, financial, and compliance information, API keys, transaction data, and the contents of any Order Form. These published Terms are not Confidential Information. Confidential Information does not include information that: (a) is or becomes publicly available through no fault of the receiving Party; (b) was known to the receiving Party before disclosure; (c) is independently developed by the receiving Party; or (d) is received from a third party without breach of any confidentiality obligation.

"**Developer Application**" means any software application, product, or service operated by Developer that integrates with the Services via the API.

"**Developer Data**" means all data collected or generated by Developer in connection with an End-User's use of the Developer Application, including End-User identifiers, account information, and usage data. Developer Data is Developer's Confidential Information.

"**Developer Tier**" means the service tier selected by Developer from Align's then-current published pricing tiers (as at the date of these Terms, "Build", "Scale", and "Enterprise"), as set out at <https://alignlabs.dev/pricing> or any successor page. The Developer Tier applicable to Developer is identified in the applicable Order Form or other written communication agreed between the Parties. Align may rename, restructure, or update the available Developer Tiers from time to time on not less than thirty (30) days' written notice to Developer.

"**Effective Date**" means the date on which Developer first accepts these Terms in accordance with the Acceptance section above (whether by executing an Order Form, creating a developer account, or accessing the API, whichever is earliest).

"**End-User**" means any individual or entity that accesses or uses the Services through the Developer Application.

"**Fiat Currency**" means a currency that is issued by a country and is designated as legal tender in that country. For the purposes of this Agreement, Fiat Currency includes Canadian dollars and any other foreign currency that meets this criteria, but specifically excludes any Virtual Currency.

"**Insolvency Event**" means circumstances where a Party: (a) becomes or is declared insolvent, is unable to pay its debts as they fall due, or admits inability to pay its debts; (b) is the subject of liquidation or insolvency proceedings, including appointment of a receiver or administrator; (c) makes an assignment for the benefit of creditors; (d) enters into a composition or arrangement with creditors; or (e) files a voluntary insolvency petition or has an involuntary petition filed against it that is not dismissed within sixty (60) days.

"**Order Form**" means any order form, statement of work, fee schedule, or other written or electronic commercial document agreed between the Parties that references these Terms and sets out, among other things, the applicable Developer Tier, the fees payable, and Developer's designated contacts.

"**Personal Information**" has the meaning given to 'personal information' under section 2(1) of the Personal Information Protection and Electronic Documents Act (Canada).

"**Personnel**" means a Party's officers, directors, employees, agents, representatives, and contractors.

"**Prohibited Person**" means any person or entity that is: (a) listed on any Sanctions List; (b) located, organised, or resident in a Sanctioned Jurisdiction; (c) owned or controlled by, or acting on behalf of, a person described in (a) or (b); or (d) otherwise the target of sanctions administered by any Sanctions Authority.

"**Restricted Jurisdiction**" means any country, territory, region, or part thereof in respect of which Align does not provide, or determines in its sole discretion not to provide, the Services from time to time. The list of Restricted Jurisdictions includes, without limitation, every Sanctioned Jurisdiction, and may also include jurisdictions designated by Align for any other reason it considers appropriate, including FATF high-risk or monitoring status, elevated financial crime risk, banking partner or service provider restrictions, absence of appropriate licensing or regulatory coverage, or operational, legal, or reputational considerations. Align maintains the list of Restricted Jurisdictions and may update it at any time without prior notice.

"**Sanctions Authority**" means FINTRAC, Global Affairs Canada (including under the Special Economic Measures Act, the Justice for Victims of Corrupt Foreign Officials Act, and the United Nations Act), the Office of the Superintendent of Financial Institutions, the Office of Foreign Assets Control of the U.S. Department of the Treasury, His Majesty's Treasury (United Kingdom), the European Union, the United Nations Security Council, and any other governmental authority administering sanctions programmes applicable to either Party.

"**Sanctions Lists**" means any of the consolidated lists of designated persons and entities maintained by FINTRAC, Global Affairs Canada, the Office of the Superintendent of Financial Institutions, the Office of Foreign Assets Control of the U.S. Department of the Treasury, His Majesty's Treasury (UK), the European Union and the United Nations Security Council, in each case as updated from time to time.

"**Sanctioned Jurisdiction**" means any country, territory, or region that is the subject of comprehensive (country-wide or region-wide) economic or trade sanctions administered by any Sanctions Authority from time to time. Align maintains and may update the list of Sanctioned Jurisdictions in its sole discretion to reflect changes in Applicable Law.

"**Security Breach**" means any act or omission that materially compromises the security, confidentiality, or integrity of a Party's Confidential Information, Personal Information, or End-User data, or the physical, technical, administrative, or organisational safeguards put in place to protect such data.

"**Services**" means the fiat-stablecoin payment orchestration, routing, conversion, and settlement services provided by Align via the API, including KYC/KYB verification, virtual account provisioning, and transaction processing.

"**Stablecoin**" means a cryptographic token designed to maintain a stable value by reference to a Fiat Currency or other reference asset.

"**Transaction**" means any instruction submitted by Developer or an End-User via the API that initiates a payment, conversion, or settlement through the Services.

### 2. Services

2.1 Align provides proprietary API infrastructure ("Align API", "API") to enable Fiat Currencies and Stablecoin payments, routing, conversion, and settlement services. Developer may integrate and use the Services to power payments within the Developer Application.

2.2 The current list of supported corridors, currencies, blockchains, and settlement methods is maintained in the Align developer documentation and incorporated by reference. Align may add or remove corridors with not less than fifteen (15) days' written notice to Developer. Align shall exclusively control the list of supported Fiat Currencies and Stablecoins. Align may suspend or cancel any Order or corridor immediately for compliance, legal, or regulatory reasons without prior notice. Removal of a corridor actively used by Developer shall require thirty (30) days' notice.

2.3 Align may modify, update, or enhance the Services from time to time, provided that any material reduction in functionality shall be subject to not less than thirty (30) days' written notice.

2.4 Align may suspend the Services, in whole or in part, for scheduled maintenance (with not less than 48 hours' notice), emergency maintenance (with notice as soon as reasonably practicable), or for compliance, legal, or regulatory reasons (immediately and without notice where necessary).

### 3. API Access and Restrictions

3.1 **Licence.** Align grants Developer a limited, revocable, non-exclusive, non-transferable licence to use the API solely to integrate the Developer Application with the Services for the duration of this Agreement.

3.2 **Developer obligations.** Developer shall:

(a) develop, deploy, and securely maintain the integration between the Developer Application and the API throughout the Term, and promptly remediate any defect, vulnerability, or incompatibility identified by Developer or notified by Align;

(b) secure all API keys, credentials, and authentication tokens at all times by implementing security procedures that meet or exceed the standards applicable to federally regulated financial institutions in Canada and the requirements of Section 22 (Developer Security Obligations) and not share them with any third party;

(c) implement and maintain reasonable security controls, including encryption of data in transit and at rest;

(d) comply with Align's API documentation and integration guidelines;

(e) not reverse engineer, decompile, scrape, or attempt to derive the source code of the API or the Services;

(f) not resell, sublicence, or provide access to the API to any third party, except as strictly necessary to operate the Developer Application;

(g) not use the API in a manner that exceeds reasonable usage limits or that could impair the performance or availability of the Services;

(h) offer and provide the Services to End-Users using Developer-branded marketing and End-User communications that comply with Section 23 (Marketing and Financial Promotions);

(i) provide Align with accurate, up-to-date, and complete End-User information sufficient to permit Align to (i) evaluate an End-User's eligibility to receive the Services and (ii) conduct ongoing customer due diligence and Transaction monitoring in accordance with Sections 4 and 5;

(j) ensure that each End-User is bound by Align's End-User Terms and Privacy Policy prior to being granted access to the Services, in accordance with Section 11.2;

(k) monitor End-User usage of the Services and promptly report End-User complaints to Align;

(l) inform Align of any suspicious activity by End-Users, and of any termination or suspension by Developer of an End-User's access to the Developer Application, in accordance with Sections 4.4 and 6 (Tipping Off);

(m) ensure the delivery to, and acceptance by, End-Users of Transaction confirmations, periodic Align disclosures, and any other documents that Align is required to provide to End-Users under Applicable Law, in the form and manner reasonably specified by Align; and

(n) assist Align in verifying the identity of each End-User as reasonably required by Align, Align's banking partners, or any regulatory authority (including FINTRAC), and provide Align with such identity verification information as reasonably requested.

By accepting this Agreement, Developer also agrees, on its own behalf, to Align's End-User Terms (as published by Align and updated from time to time) to the extent Developer itself receives the Services as an End-User.

Developer shall not use the Services or the API, and shall not permit its Affiliates or End-Users to use the Services or the API, for any activity prohibited by Section 9 (Acceptable Use) or by Align's Prohibited Activities Policy referenced in Section 9.

3.3 **Align obligations.** Align shall:

(a) pursuant to Section 3.1, provide Developer with secure access to the API environment;

(b) provide integration and ongoing technical support to Developer in connection with the initial design, development, testing, and go-live of the integration between the Developer Application and the API, the scope of which depends on Developer's Developer Tier and which may, at lower Developer Tiers, be limited to self-serve documentation;

(c) onboard End-Users to the Services in accordance with Align's AML and sanctions compliance programme maintained under the Proceeds of Crime (Money Laundering) and Terrorist Financing Act (Canada) and applicable FINTRAC guidance, and with the End-User eligibility criteria established by Align from time to time (including performing identity verification required to receive the Services) (the "Onboarding Criteria");

(d) use commercially reasonable efforts to process and settle Transactions submitted by Developer through the API in partnership with one or more banking partners, payment service providers, virtual currency trading facilities, and stablecoin issuers, provided that Align does not guarantee that any individual Transaction will be processed, settled, or completed within any particular timeframe;

(e) maintain Transaction records in accordance with Section 21 (Record Retention);

(f) monitor End-User compliance with Applicable Law and Align's End-User Terms on an ongoing basis.

Align retains sole discretion to establish and modify the Onboarding Criteria and to refuse, suspend, or terminate any End-User's access to the Services at any time in accordance with Section 5.5.

3.4 **Rate limiting and fair use.** Align may implement rate limits, throttling, and fair use policies on API usage. Align may restrict or suspend access if Developer's usage exceeds published limits or constitutes abuse.

3.5 **Subcontracting restriction.** Developer shall not permit any third party to access or use the API through Developer's integration, or white-label, resell, or redistribute the Services, without Align's prior written consent.

3.6 **Developer Tiers.** The scope, channels, response times, escalation paths, availability, and any service level commitments applicable to the support described in Section 3.3(b) vary by Developer Tier and are set out in Align's then-current support policies and procedures published at <https://alignlabs.dev/pricing> (or any successor page). Dedicated integration engineering, dedicated account management, dedicated communication channels, and uptime or support service level commitments are provided only at the Developer Tiers that expressly include them. Align may update its support policies and procedures from time to time in its sole discretion and without Developer's consent. Where an update would materially reduce the support level applicable to Developer's Developer Tier, Align shall give Developer not less than thirty (30) days' prior written notice, and the update shall take effect automatically at the end of the notice period. Developer's sole remedy in respect of any such material reduction is, before the update takes effect, to (a) change to a different Developer Tier, (b) terminate this Agreement on written notice in accordance with Section 10.1, or (c) accept the change. Continued use of the Services after the update takes effect constitutes acceptance of the updated Developer Tier, support policies and procedures.

### 4. Compliance and Onboarding

4.1 **Developer AML programme.** Developer shall establish, implement, and maintain an AML and sanctions compliance programme appropriate to its business, users, geographies, and products. At Align's reasonable request, Developer shall provide summaries of its AML controls and promptly notify Align of any material changes, investigations, or enforcement actions relevant to the Services.

4.2 **Information requests.** Other than where Section 4.5 applies, Align may request information from Developer on an ongoing basis and may approve, limit, refuse, or suspend access to the Services based on Align's compliance, risk, or banking partner requirements. Developer shall provide all requested data, documents, and records within forty-eight (48) hours of receipt of Align's request. Failure to respond within this timeframe entitles Align to suspend Developer's access to the Services until the information is provided. Any regulatory fines or penalties imposed on Align as a direct result of Developer's failure to respond shall be recoverable from Developer under Section 15.1.

4.3 **Transaction and account blocking.** Align may block, freeze, delay, or reject any Transaction, or suspend any End-User account, for compliance reasons, and may request any information necessary to satisfy its AML, CFT, and sanctions obligations. Developer shall cooperate fully and promptly with any such request.

4.4 **Developer notification obligations.** Developer shall notify Align within twenty-four (24) hours if Developer becomes aware or has reasonable grounds to suspect that any End-User: (a) is or may be a Prohibited Person; (b) is under investigation by any law enforcement or regulatory authority; (c) is involved in or connected to money laundering, terrorist financing, or sanctions evasion; or (d) has provided false or misleading identification information.

4.5 **Requests for information.** Where Align requests information from Developer in connection with an actual or anticipated request from a regulator, law enforcement authority, banking partner, or other competent authority, Developer shall provide all requested data, documents, and records within two (2) Business Days of receipt of Align's request, or within such shorter period as Align may reasonably specify where the requesting authority has imposed a shorter deadline on Align. Developer shall also cooperate with any regulatory examination or supervisory review relating to the Services, including by making Personnel available as reasonably required. Failure to respond within the required timeframe entitles Align to suspend Developer's access to the Services. Any regulatory fines or penalties imposed on Align as a direct result of Developer's failure to respond shall be recoverable from Developer under Section 15.1. This Section 4.5 prevails over Section 4.2 in the event of any inconsistency.

4.6 **Notification of material business changes.** Developer shall notify Align in writing within three (3) days of any of the following: (a) any change in Developer's ultimate beneficial ownership, including the addition, removal, or change of any individual or entity holding, directly or indirectly, 25% or more of Developer's shares or voting rights; (b) any change of Developer's directors, officers, or persons with significant control; (c) any change of Developer's legal name, jurisdiction of incorporation, or registered address; (d) any change of Developer's regulatory status, including the grant, refusal, suspension, revocation, or material variation of any licence, registration, or authorisation relevant to Developer's use of the Services; (e) any material change to Developer's business model, product offering, or End-User base that could affect the risk profile of Transactions processed through the Services; (f) any Insolvency Event; or (g) any litigation, regulatory investigation, or enforcement action that could materially affect Developer's ability to perform its obligations under this Agreement. Upon receipt of any such notification, Align may reassess Developer's risk profile and may require additional information, impose conditions, or suspend or terminate this Agreement in accordance with Section 10.

4.7 **Sanctions monitoring of Developer's Personnel, Affiliates, and service providers.** Developer shall continuously monitor its own Personnel, Affiliates, and service providers involved in the performance of this Agreement against applicable Sanctions Lists. Developer shall promptly notify Align if any such Person becomes a Prohibited Person, and shall remove or replace any such Person within a reasonable time after discovery. Failure to do so is a material breach of this Agreement.

4.8 **Developer recordkeeping.** Developer shall maintain accurate records relating to the Developer Application, End-User onboarding and consent, End-User communications, and Developer's performance under this Agreement, for a minimum of five (5) years from the date of the relevant record or Transaction (whichever is later), mirroring Align's own retention obligations under Section 21. Developer shall grant Align reasonable access to such records on request from a banking partner, payment service provider, or regulatory authority with jurisdiction over Developer or Align, subject to Section 6 (Tipping Off) and Applicable Law.

4.9 **Mutual cooperation.** The Parties shall cooperate to put in place sufficient controls and procedures to obtain and maintain any approvals required for the Services from banking partners, payment service providers, and regulatory authorities (including FINTRAC), and shall otherwise assist each other in fulfilling their respective obligations under Applicable Law in connection with this Agreement. Neither Party shall require the other to take any action that would cause it to violate Applicable Law.

### 5. KYC/KYB Responsibility Allocation

5.1 **Align responsibilities.** Align shall: (a) perform initial KYC verification of individual End-Users in accordance with Align's risk-based customer due diligence procedures; (b) perform initial KYB verification of business End-Users, including beneficial ownership identification; (c) screen End-Users and Transactions against applicable Sanctions Lists; and (d) conduct transaction monitoring for suspicious activity on Transactions processed through the Services.

5.2 **Developer responsibilities.** Developer shall: (a) collect and submit to Align accurate and complete End-User identification information as required by Align's onboarding procedures; (b) maintain its own AML compliance programme proportionate to its business; (c) perform ongoing customer due diligence on its End-Users, including monitoring for changes in risk profile, and promptly notify Align of any material change; (d) apply enhanced due diligence for high-risk End-Users, PEPs, and End-Users in high-risk jurisdictions, and provide Align with the results upon request; and (e) not onboard or submit Transactions for End-Users that Developer knows or suspects are engaged in financial crime.

5.3 **Reliance on Developer-submitted information.** If Align relies on information submitted by Developer to perform KYC, KYB, or sanctions screening, and such information is later found to be false, incomplete, or misleading, Developer shall bear the compliance risk and any resulting liability, including regulatory fines, remediation costs, and banking partner penalties.

5.4 **Bank-initiated enhanced due diligence.** Where a banking partner or upstream financial institution requires enhanced due diligence on any End-User or Transaction, Align may request that Developer promptly provide such additional information as is necessary. Developer shall use commercially reasonable efforts to provide the requested information within forty-eight (48) hours. Align may suspend processing of the relevant End-User's Transactions until the EDD request has been satisfied. Failure to cooperate with EDD requests may result in suspension of affected payment corridors or termination of this Agreement.

5.5 **Dual relationship.** Developer acknowledges that, while Developer maintains the primary commercial relationship with its End-Users, each End-User whose Transactions are processed through the Services is also a customer of Align for all compliance, regulatory, and reporting purposes. Align shall have the independent right and obligation to: (a) perform customer due diligence, enhanced due diligence, and ongoing monitoring on End-Users; (b) screen End-Users and their Transactions against applicable Sanctions Lists; (c) file SARs, STRs, or equivalent reports with relevant authorities without Developer's prior knowledge or consent; (d) block, freeze, delay, or reject any Transaction or refuse to onboard or continue to service any End-User based on Align's own risk assessment, compliance obligations, or the requirements of its banking partners; and (e) retain End-User identification records and Transaction data as required by Applicable Law. Nothing in this Agreement shall be construed to limit Align's ability to satisfy its obligations as a regulated money services business.

5.6 **Regulatory reporting.** Each Party shall be independently responsible for filing SARs, STRs, or equivalent reports with its relevant regulatory authority to the extent required by Applicable Law. Neither Party's obligation to report is contingent on the other Party having identified or flagged the relevant activity.

5.7 **No agency or mandatary relationship.** The Parties expressly acknowledge and agree that Developer is not, and shall not be deemed to be, an agent, mandatary, branch, authorised person, employee or representative of Align for any purpose, including for the purposes of subsection 9.31(1) of the PCMLTFA or the regulations made thereunder. Without limiting the generality of the foregoing: (a) Developer does not conduct any money services business activity on Align's behalf; (b) Developer does not perform customer identification, customer due diligence, enhanced due diligence, sanctions screening, beneficial ownership determination, third-party determination, transaction monitoring, recordkeeping or regulatory reporting on Align's behalf or as Align's agent or mandatary, and Align does not rely on Developer for the performance of any such function; (c) Align discharges its obligations under the PCMLTFA directly, independently and in its own name, using its own personnel, systems and contracted identity verification providers; (d) each End-User enters into a direct contractual relationship with Align by accepting Align's End-User Terms, and is a customer of Align for the purposes of the PCMLTFA independently of any relationship between the End-User and Developer; (e) Developer is an independent business that operates the Developer Application in its own name and under its own regulatory authorisations (if any), and neither Party holds the other out to End-Users or to any third party as its agent, mandatary or representative; and (f) neither this Agreement nor the integration of the Developer Application with the Services creates any partnership, joint venture, fiduciary, custodial, principal-and-agent or principal-and-mandatary relationship between the Parties. The Parties have drafted this Section 5.7 with specific reference to FINTRAC guidance on the principal-and-agent relationship under the PCMLTFA, and intend this Section 5.7 to govern any question of classification that may arise under Canadian AML legislation.

### 6. Tipping Off and Confidentiality of Compliance Actions

6.1 **Non-disclosure obligation.** Developer shall not, and shall ensure that its Personnel do not, disclose to any person (including any End-User, counterparty, or third party) that: (a) a SAR, STR, or equivalent disclosure has been filed or is being considered by either Party; (b) Align has blocked, frozen, delayed, or flagged any Transaction, account, or wallet for compliance, sanctions, or regulatory reasons; (c) any investigation relating to money laundering, terrorist financing, sanctions, or other financial crime is underway or being contemplated; or (d) Align has requested information from Developer in connection with a specific Transaction or End-User for compliance purposes.

6.2 **Permitted disclosures.** Section 6.1 does not prevent disclosure: (a) to the extent required by Applicable Law or order of a competent authority; (b) to Developer's legal counsel for the purpose of obtaining legal advice; or (c) to Developer's own compliance officer or MLRO for internal compliance purposes.

6.3 **End-User communications.** Where Align blocks or delays a Transaction for compliance reasons, Developer may inform the affected End-User only that the transaction is under review or cannot be processed at this time. Developer shall not provide any further detail regarding the reason, the involvement of any regulatory body, or the existence of any report or investigation.

6.4 **Criminal liability notice.** Developer acknowledges that tipping off may constitute a criminal offence under Applicable Law, including section 8 of the Proceeds of Crime (Money Laundering) and Terrorist Financing Act, S.C. 2000, c. 17 (Canada), Section 333A of the Proceeds of Crime Act 2002 (United Kingdom), 31 U.S.C. § 5318(g)(2) (United States), and equivalent provisions in other jurisdictions.

### 7. Settlement and Execution

7.1 Developer shall provide accurate settlement details for each Transaction, including recipient bank details, wallet addresses, amounts, and currency.

7.2 **Finality.** Completed settlements are final and irreversible. A Transaction shall be deemed final upon confirmation of receipt by the destination bank, payment system, or blockchain network.

7.3 Align does not provide investment advice, portfolio management, or custody of digital assets. Align holds stablecoins and fiat currency solely for the purpose of processing Transactions.

7.4 **FX margin.** Exchange rates applied to Transactions are determined at the time of execution and include Align's margin.

### 8. Settlement Errors and Loss Allocation

8.1 **Developer or End-User error.**

(a) Where a Transaction is executed based on incorrect information provided by Developer or an End-User (including incorrect wallet addresses, bank details, amounts, or duplicate submissions), Align shall have no liability to Developer or the End-User for any resulting loss of funds. Completed Transactions based on the instructions received by Align are final and irreversible regardless of error.

(b) Align may, but is not obligated to, attempt to recover funds on a best-efforts basis. Any costs incurred by Align in attempting recovery shall be borne by Developer or, where the error is attributable to the End-User, may be passed through by Developer to the End-User. Developer shall reimburse Align for any such costs within seven (7) days of invoice.

(c) Where the error is attributable to an End-User, Developer shall be entitled to recover the full amount of any loss from the End-User in accordance with Developer's own end-user terms. Developer shall ensure that its end-user terms expressly state that End-Users are solely responsible for the accuracy of wallet addresses, bank details, and payment instructions, and that neither Align nor Developer shall be liable for funds sent to incorrect destinations as a result of End-User error.

(d) Where the error is attributable to Developer, Developer shall bear the financial loss and shall have no right of recovery against Align.

(e) Developer shall implement reasonable validation controls in the Developer Application, including wallet address format verification and chain-matching checks, before submitting Transaction instructions to the API.

8.2 **Align error.** Where Align executes a Transaction incorrectly due to a system error, routing mistake, or operational failure attributable to Align, Align shall use commercially reasonable efforts to recover the funds and shall bear the loss up to the liability cap set out in Section 14.1. Developer must notify Align of any suspected error within thirty (30) days of the Transaction date. Align shall have no liability for errors reported after this period.

8.3 **Upstream partner failures.** Where a settlement failure, reversal, freeze, or loss of funds is caused by an act or omission of a banking partner, payment service provider, stablecoin issuer, blockchain network, or other upstream infrastructure provider, neither Party shall be liable to the other. Align shall use commercially reasonable efforts to recover affected funds but does not guarantee recovery.

8.4 **Clawback right.** If a banking partner or payment service provider reverses, recalls, or claws back a settlement that Align has already disbursed to Developer or Developer's End-Users, Align may deduct the corresponding amount from Developer's next settlement payment or invoice Developer for the amount. Developer shall pay any such invoice within seven (7) days.

8.5 **Currency and blockchain risk.** Developer acknowledges the inherent risks associated with stablecoin and blockchain-based payments, including: stablecoin depeg events, blockchain network congestion or outage, smart contract failure, bridge or cross-chain failures, and foreign exchange rate movement between instruction and execution. Align shall not be liable for losses arising from these risks unless caused by Align's gross negligence or wilful misconduct.

8.6 **Dispute timeframe.** Developer must raise any Transaction dispute with Align in writing within thirty (30) days of the Transaction date. Align shall investigate and provide a response within ten (10) Business Days. Disputes not raised within thirty (30) days shall be deemed waived.

8.7 **Developer liability for security failures.** Developer shall be liable for all losses incurred by Align that arise out of, are caused by, or are related to: (a) loss, theft, disclosure, or unauthorised use of API keys or other credentials issued to Developer; (b) unauthorized access to or use of any system operated by Developer or a Developer service provider; or (c) any Security Breach caused by Developer, its Personnel, or a service provider engaged by Developer. Developer's liability for losses caused by its negligence, fraud, or wilful misconduct in connection with Transaction instructions is governed by Section 8.1(d).

8.8 **Risk Reserve.** If Developer wishes to enable End-Users to fund Transactions using reversible pay-in methods (including credit or debit card, ACH, EFT, Interac e-Transfer, Pre-Authorised Debits, SEPA Direct Debit, or any other method subject to chargeback, recall, or reversal), Align and Developer shall agree in writing, in advance, on the size, funding mechanism, and release conditions of a risk reserve to cover Transaction chargebacks, reversals, and recalls. Align may adjust the required reserve amount from time to time based on observed chargeback rates, banking partner requirements, or Developer's risk profile, on not less than fifteen (15) days' notice (or immediately where required by a banking partner or regulator). Align may deduct amounts due from the reserve to satisfy any chargeback, reversal, recall, or other Developer liability under this Agreement.

### 9. Acceptable Use

9.1 **Prohibited activities.** Developer shall not use the Services, and shall ensure that End-Users do not use the Services, for any activity that:

(a) is unlawful, unlicensed, or contrary to Applicable Law in any relevant jurisdiction;

(b) involves or facilitates financial crime;

(c) involves or benefits a Prohibited Person, or is conducted in or involves any Sanctioned Jurisdiction or Restricted Jurisdiction;

(d) infringes the intellectual property or other rights of any third party; or

(e) is, in Align's reasonable determination, prohibited or restricted by (i) Align's internal compliance, risk, sanctions, or anti-money-laundering policies, (ii) the requirements or restrictions of any Align banking partner, payment service provider, or stablecoin issuer, (iii) any guidance, directive, or instruction issued by FINTRAC or any other regulatory authority with jurisdiction over Align, or (iv) any other internal policy adopted by Align from time to time to manage financial, legal, regulatory, or reputational risk (collectively, the "Align Compliance Policies").

9.2 **Align Compliance Policies.** The Align Compliance Policies form part of Align's internal AML and risk management program and are confidential. Align may, where consistent with Applicable Law, communicate specific restrictions to Developer where (a) Align declines to onboard a particular End-User or category of End-Users, (b) Align blocks, freezes, or reverses a particular Transaction or category of Transactions, (c) Align identifies a use case that Developer has proposed or implemented as falling within the Align Compliance Policies, or (d) Align determines that disclosure of a specific restriction is necessary to enable Developer to comply with this Section 9. Any such communication forms part of the Align Compliance Policies as between Align and Developer and is binding on Developer from the moment of communication.

9.3 **Updates and discretion.** Align may update, expand, or restrict the Align Compliance Policies at any time and in its sole discretion, without prior notice to Developer and without requiring any amendment to this Agreement. Developer acknowledges that the Align Compliance Policies may change in response to regulatory developments, banking partner requirements, sanctions designations, FATF guidance, or Align's own risk assessment, and that Align is the sole arbiter of whether a particular activity falls within the Align Compliance Policies.

9.4 **Compliance and material breach.** Any use of the Services in breach of Section 9.1 is a material breach of this Agreement. Align may, at its sole discretion and without prior notice or liability to Developer, (a) suspend or terminate Developer's access to the Services, (b) block, freeze, delay, reverse, or refuse to process any affected Transaction, (c) refuse to onboard or terminate any affected End-User, and (d) terminate this Agreement immediately under Section 10.2.

### 10. Termination

10.1 **Termination for convenience.** Either Party may terminate this Agreement by giving not less than thirty (30) days' written notice.

10.2 **Termination for cause.** Either Party may terminate this Agreement immediately by written notice if the other Party:

(a) commits a material breach that is not remedied within fourteen (14) days of written notice specifying the breach;

(b) commits fraud or is involved in fraudulent activity;

(c) becomes the subject of sanctions or is designated as a Prohibited Person;

(d) experiences an Insolvency Event;

(e) poses a material legal, regulatory, or reputational risk to the other Party;

(f) upon thirty (30) days' notice (or immediately where prior notice is prohibited by the relevant authority or Applicable Law) if the terminating Party reasonably believes that termination is required by Applicable Law, or if the terminating Party is expressly required to terminate by a banking partner, payment service provider, or the order of a regulatory authority (including FINTRAC) having jurisdiction over the terminating Party; or

(g) immediately if the other Party fails to maintain any licence, registration, or authorisation materially necessary to perform its obligations under this Agreement, including (in the case of Align) its FINTRAC MSB registration.

10.3 **Effects of termination.** Upon termination:

(a) in-flight Transactions shall be completed;

(b) Developer shall immediately cease using the API and any other Align products;

(c) each Party shall return or destroy the other Party's Confidential Information (except as required by Applicable Law); and

(d) all outstanding fees shall become immediately due and payable.

10.4 **Wind-down period.** For a period of three (3) months following termination or expiry (or such shorter period as Align determines) (the "Wind-Down Period"):

(a) Developer shall continue to make the Services available to End-Users to the extent necessary for Align to complete outstanding Transactions;

(b) each Party shall cooperate to address End-User complaints;

(c) Developer shall not submit new Transactions or onboard new End-Users; and

(d) all compliance obligations shall continue in full.

### 11. End-User Terms

11.1 **Required terms.** Developer shall maintain legally binding end-user terms that are at least as protective as this Agreement with respect to:

(a) prohibited activities and acceptable use;

(b) compliance with Applicable Law;

(c) data protection; and

(d) limitation of liability.

Developer shall not make representations to End-Users regarding the Services that are inconsistent with this Agreement.

11.2 **End-User acceptance of Align terms.** Developer shall ensure that each End-User is bound by Align's End-User Terms and Privacy Policy (as published by Align and updated from time to time) prior to that End-User being granted access to the Services. Developer may satisfy this obligation by any of the following methods:

(a) incorporating Align's End-User Terms by reference into Developer's own end-user terms, such that each End-User is bound by Align's End-User Terms upon agreeing to Developer's terms, and making Align's End-User Terms accessible to End-Users via a link within the Developer Application;

(b) presenting Align's End-User Terms directly to End-Users for acceptance within the Developer Application; or

(c) where permitted by Applicable Law, accepting Align's End-User Terms on behalf of each End-User, provided that Developer warrants it has obtained the legal authority to do so under its own end-user terms and Applicable Law.

Align may, upon thirty (30) days' written notice, require Developer to adopt a different method if required by Applicable Law, a regulatory authority, or a banking partner. Regardless of the method selected, Developer warrants that the implementation is legally sufficient to bind End-Users to Align's End-User Terms under Applicable Law in each jurisdiction where the Developer Application operates. Developer shall be liable to Align for any failure to bind an End-User to Align's End-User Terms.

Align's End-User Terms establish a direct contractual relationship between Align and each End-User that is independent from Developer's own relationship with its End-Users.

11.3 **Liability for End-Users.** Developer is solely responsible for the acts and omissions of its End-Users in connection with the Services. Developer shall be liable to Align for any breach of this Agreement caused by or attributable to an End-User as if the breach had been committed by Developer.

11.4 **End-User disputes.** Developer is solely responsible for handling disputes with its End-Users, including refund requests, complaints, and chargebacks. Align has no obligation to engage directly with End-Users unless required by Applicable Law.

### 12. Data Protection and Ownership

12.1 **Data transfer and consent.** The transfer of Personal Information from Developer to Align, Align's handling of that Personal Information, and the onward transfer of that Personal Information by Align to its service providers, banking partners, and regulatory authorities, are governed by the Data Transfer and Consent Addendum set out at Schedule 1 to this Agreement, which is incorporated into and forms an integral part of this Agreement. The Parties acknowledge that Align receives Personal Information as an independent recipient, and not as Developer's processor or agent, because Align determines the purposes and means of processing Personal Information independently in accordance with its obligations as a money services business registered with FINTRAC under the Proceeds of Crime (Money Laundering) and Terrorist Financing Act (Canada). Each Party is independently accountable under the Personal Information Protection and Electronic Documents Act (Canada) for the Personal Information it holds.

12.2 **Breach notification.** Each Party shall promptly (and in no event more than forty-eight (48) hours after discovery) notify the other Party of any Security Breach affecting the other Party's Confidential Information or End-User data, and shall take all steps at its own expense as reasonably requested to limit, contain, and remedy the breach.

12.3 **Data ownership.**

(a) Align shall own, administer, and control all Align Data. Developer shall have no proprietary rights to Align Data except as necessary to fulfil its obligations under this Agreement.

(b) Developer shall own, administer, and control all Developer Data. Align shall have no proprietary rights to Developer Data except as necessary to provide the Services and comply with Applicable Law.

(c) The Parties acknowledge that End-User data submitted to Align may overlap with data held by Developer, and each Party independently owns such overlapping data pursuant to its own end-user agreements. End-User data provided by Developer to Align shall be deemed Align Data upon creation of an Align compliance record for that End-User. Align shall not use Developer Data to directly or indirectly solicit End-Users to use services that compete with the Developer Application.

### 13. Confidentiality

13.1 Each Party shall keep the other Party's Confidential Information confidential and shall use it only for purposes of this Agreement. Each Party shall apply industry-standard safeguards to protect the other Party's Confidential Information.

13.2 A Party may disclose Confidential Information to the extent required by Applicable Law, regulation, or order of a competent court or authority, provided that the disclosing Party gives the other Party prompt notice (to the extent legally permitted) and cooperates in seeking confidential treatment.

13.3 A Party may disclose Confidential Information to Personnel, affiliates, or service providers with a legitimate need to know, provided such persons are bound by confidentiality obligations at least as protective as this Section 13.

13.4 The notice requirement in Section 13.2 shall not apply where a Party is required to share the other Party's Confidential Information with a regulatory authority (including FINTRAC, the Office of the Superintendent of Financial Institutions, or any provincial regulator) in connection with a required periodic examination or supervisory review of the disclosing Party's business.

### 14. Limitation of Liability

14.1 **Cap on liability.** Except as set out in Section 14.3, Align's total aggregate liability under this Agreement shall not exceed one hundred thousand US dollars (US$100,000).

14.2 **Exclusion of consequential loss.** Neither Party shall be liable for any indirect, incidental, special, consequential, or punitive damages, or any loss of profits, revenue, data, or business opportunity, however caused and regardless of theory of liability.

14.3 **Exceptions.** Nothing in this Section 14 shall limit liability for:

(a) fraud or fraudulent misrepresentation;

(b) death or personal injury caused by negligence;

(c) any liability that cannot be excluded by Applicable Law;

(d) Developer's indemnification obligations under Section 15;

(e) Developer's breach of Section 4.4 (Developer notification obligations), Section 4.5 (Regulatory and law enforcement information requests), Section 4.6 (Notification of material business changes), Section 4.7 (Sanctions monitoring), Section 6 (Tipping Off), or Section 9 (Acceptable Use);

(f) Developer's obligation to reimburse Align under Section 8.1 or 8.4; or

(g) Developer's breach of Section 17 (Anti-Bribery and Corruption).

14.4 **Disclaimer of warranties.** EXCEPT AS EXPRESSLY STATED IN THIS AGREEMENT, THE SERVICES ARE PROVIDED "AS IS" AND "AS AVAILABLE." ALIGN MAKES NO EXPRESS OR IMPLIED REPRESENTATIONS OR WARRANTIES REGARDING THE SERVICES, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, OR ANY WARRANTIES ARISING FROM COURSE OF DEALING OR TRADE USAGE. ALIGN DOES NOT WARRANT THAT THE SERVICES WILL BE ERROR-FREE OR UNINTERRUPTED.

### 15. Indemnification

15.1 **Developer indemnity.** Developer shall indemnify, defend, and hold harmless Align and its Personnel from and against any claims, losses, liabilities, damages, costs, and expenses (including reasonable legal fees) arising out of:

(a) Developer's breach of this Agreement;

(b) any act or omission of Developer's End-Users;

(c) Developer's failure to comply with Applicable Law;

(d) any claim by a third party arising from the Developer Application; or

(e) any regulatory investigation, enforcement action, or fine imposed on Align as a result of Developer's or its End-Users' conduct.

15.2 **Align indemnity.** Align shall indemnify Developer from claims arising out of Align's material breach of this Agreement or Align's wilful infringement of a third party's intellectual property rights through the Services, subject to the liability cap in Section 14.1.

15.3 **Procedure.** The indemnified Party shall: (a) notify the indemnifying Party in writing no later than twenty (20) days after receipt of any formal third-party claim that has commenced before a court, arbitral tribunal, or regulatory authority, and no later than thirty (30) days after receipt in all other cases (including, where possible, the amount or estimated amount of liability); a failure to provide notice within these timeframes shall only relieve the indemnifying Party of its indemnification obligation to the extent such failure has caused material prejudice to the indemnifying Party; (b) grant the indemnifying Party sole control of the defence and settlement (provided any settlement imposing obligations on the indemnified Party requires prior written consent); and (c) provide reasonable cooperation at the indemnifying Party's expense.

### 16. Representations and Warranties

16.1 **Mutual representations.** Each Party represents and warrants that:

(a) it is duly incorporated, validly existing, and in good standing;

(b) it has full power and authority to enter into and perform this Agreement;

(c) the execution and performance does not conflict with any other agreement to which it is a party;

(d) it is not a Prohibited Person and is not owned or controlled by a Prohibited Person; and

(e) no statement or information contained in this Agreement, or furnished by or on behalf of such Party to the other Party in connection with this Agreement, when taken as a whole, contains any untrue statement of a material fact or omits a material fact necessary to make the statements made, in light of the circumstances in which they were made, not misleading.

16.2 **Developer representations.** Developer additionally represents that: (a) it holds all licences and authorisations required to operate its business in each jurisdiction where it uses the Services; (b) it is not the subject of any pending investigation or enforcement action relating to financial crime; and (c) it will promptly notify Align if any of these representations ceases to be true.

16.3 **Align representations.** Align represents that it holds a valid FINTRAC MSB registration and will notify Developer if its regulatory status materially changes.

16.4 A breach of any representation in this Section 16 shall entitle the other Party to terminate immediately.

### 17. Anti-Bribery and Corruption

Each Party shall comply with all applicable anti-bribery and anti-corruption laws, including the Corruption of Foreign Public Officials Act (Canada), the Criminal Code (Canada) (including sections 119 to 125 dealing with bribery, fraud on the government, and breach of trust by a public officer). To the extent applicable to the Parties' activities under this Agreement, each Party shall also comply with the U.S. Foreign Corrupt Practices Act and the U.K. Bribery Act 2010. Neither Party shall, directly or indirectly, offer, promise, give, request, agree to receive, or accept any bribe, kickback, facilitation payment, secret commission, or other improper financial or non-financial advantage, whether to or from a public official, a private person, or any intermediary, in connection with this Agreement or the Services. Each Party shall maintain accurate books, records, and internal accounting controls sufficient to evidence compliance with this Section 17 and with the recordkeeping requirements of the Proceeds of Crime (Money Laundering) and Terrorist Financing Act (Canada). A breach of this Section 17 is a material breach entitling the other Party to terminate this Agreement immediately under Section 10.2.

### 18. Intellectual Property and Publicity

18.1 Align owns all rights in the Services, the API, and related documentation. No rights are granted except those expressly stated. Developer retains ownership of the Developer Application.

18.2 Feedback provided by Developer to Align may be used freely by Align without obligation.

18.3 Align may identify Developer as a customer in its website, pitch materials, and commercial presentations, provided Align does not imply endorsement or disclose Confidential Information. Developer may request removal at any time for reasonable cause.

### 19. Fees and Payment

19.1 Developer agrees to pay the fees set out in the applicable Order Form. Where the Parties agree additional fees in writing (including by email) before or after the Effective Date, such fees shall apply in addition to those in the Order Form.

19.2 Unless otherwise agreed in the Order Form: (a) fees are invoiced monthly in arrears; (b) invoices are payable within seven (7) days of issue; and (c) all fees are exclusive of VAT or other applicable taxes.

19.3 **Late payment.** Overdue invoices shall bear interest at 4% per annum above the Bank of Canada base rate. If an invoice remains unpaid for more than fourteen (14) days, Align may suspend the Services upon seven (7) days' written notice.

19.4 **Changes to fees.** Align may update the fees with at least thirty (30) days' written notice. Continued use after the effective date of such changes constitutes acceptance. If Developer does not agree, Developer may terminate this Agreement before the changes take effect.

### 20. Audit Rights

20.1 Align may, upon not less than ten (10) days' written notice (or immediately where required by a regulator), audit or appoint a qualified third party to audit Developer's compliance with this Agreement. Developer shall provide reasonable access and cooperation.

20.2 Align shall bear the cost of any audit unless it reveals a material breach, in which case Developer shall reimburse Align's reasonable audit costs.

20.3 Align shall conduct no more than one routine audit per twelve-month period. This limitation does not apply to audits triggered by regulatory requirement or a suspected breach.

### 21. Record Retention

Align shall retain all records relating to Transactions, End-User identification and verification, and communications with Developer and end-users, for a minimum of five (5) years from the date of the relevant Transaction or the termination of the End-User relationship, whichever is later.

### 22. Developer Security Obligations

22.1 Developer shall implement and maintain administrative, physical, and technical security safeguards designed to protect Confidential Information, Personal Information, and End-User data from unauthorised access, disclosure, loss, destruction, or alteration. Such safeguards shall be no less protective than those Developer applies to its own confidential information of a similar nature, and shall in all cases meet industry-standard security practices.

22.2 Developer's security measures shall include, at a minimum:

(a) encryption of data in transit and at rest;

(b) access controls limiting data access to Personnel with a legitimate business need;

(c) multi-factor authentication for all systems that access or store End-User data or connect to the API;

(d) regular vulnerability scanning and timely patching of known vulnerabilities;

(e) secure development practices for the Developer Application, including code review and testing for common vulnerabilities;

(f) logging and monitoring of access to systems that process End-User data or connect to the API; and

(g) a documented incident response plan that is tested at least annually.

22.3 Developer shall promptly notify Align (and in no event more than forty-eight (48) hours after discovery) of any Security Breach or suspected Security Breach affecting End-User data, Personal Information, API credentials, or any system connected to the Services. Developer shall take all steps at its own expense as reasonably necessary to contain, investigate, and remedy the breach, and shall cooperate fully with Align's own investigation and any notification obligations Align may have under Applicable Law.

22.4 Align may, upon reasonable notice, request evidence of Developer's compliance with this Section 22, including security questionnaires, penetration test summaries (with findings and remediation status), and certifications. Developer shall provide such evidence within ten (10) Business Days of request.

22.5 If Align reasonably determines that Developer's security practices pose a material risk to the Services, End-User data, or Align's infrastructure or banking relationships, Align may require Developer to implement specific remediation measures within a timeframe specified by Align. If Developer fails to implement the required measures, Align may suspend Developer's access to the Services until the deficiency is resolved.

### 23. Marketing and Financial Promotions

Developer is solely responsible for all marketing, advertising, financial promotions, and communications about its products that integrate the Services, in every jurisdiction where such materials are published, distributed, or made available to End-Users or prospective End-Users.

23.1 **Local law compliance.** Developer shall ensure that all marketing materials, financial promotions, advertisements, website content, social media communications, and End-User communications comply with all Applicable Laws, regulations, rules, and industry codes in each jurisdiction where they are published or directed, including (without limitation):

(a) financial promotions and advertising regulations applicable to payment services and stablecoin-related products in the relevant jurisdiction, including (in Canada) the Retail Payment Activities Act, the Competition Act, guidance issued by the Financial Consumer Agency of Canada, and applicable Canadian Securities Administrators and provincial securities legislation;

(b) consumer protection laws, including prohibitions on misleading, unfair, or deceptive practices;

(c) data protection and privacy laws governing marketing communications; and

(d) any rules or guidance issued by a Sanctions Authority, regulatory body, or industry self-regulatory organisation that apply to the marketing of payment services or stablecoin-related products.

23.2 **Prohibited claims.** Developer shall not, in any marketing material or End-User communication:

(a) make misleading, inaccurate, or unsubstantiated claims about the Services, including claims about transaction speed, availability, fees, exchange rates, or regulatory status;

(b) describe the Services or any Transaction as "insured," "guaranteed," "risk-free," or use any equivalent language that could mislead End-Users about the nature of the risks involved;

(c) represent or imply that Align endorses, sponsors, or approves of the Developer Application without Align's prior written consent;

(d) misrepresent Align's regulatory status or licences, or suggest that Align's regulatory status extends to Developer or the Developer Application.

23.3 **Required disclosures.** Developer shall include in its marketing materials and End-User communications all disclosures required by Applicable Law.

23.4 **Liability.** Developer shall be solely liable for any regulatory investigation, enforcement action, fine, penalty, claim, or loss arising from Developer's marketing, advertising, or financial promotions in any jurisdiction. Such liability shall be recoverable from Developer under the indemnification provisions in Section 15.1, and shall not be subject to the liability cap in Section 14.1.

### 24. Notices

24.1 All formal notices under this Agreement shall be in writing and sent by email. Notices to Align shall be sent to <compliance@alignlabs.dev> (Compliance). Notices to Developer shall be sent to the email address designated by Developer in the applicable Order Form or developer account profile.

24.2 Notices shall be deemed received on the Business Day of transmission if sent before 17:00 (London time), or on the next Business Day otherwise.

24.3 Operational communications via Slack or other agreed channels shall not constitute formal notice.

### 25. Force Majeure

Neither Party shall be liable for any failure or delay in performing its obligations (other than payment obligations) to the extent caused by circumstances beyond that Party's reasonable control, including: natural disaster, pandemic, war, terrorism, government action, regulatory change, blockchain network outage or congestion, bank or payment partner suspension, sanctions designation of a counterparty, or failure of third-party infrastructure. The affected Party shall notify the other promptly and use reasonable efforts to mitigate the impact. If the force majeure event continues for more than sixty (60) days, either Party may terminate on written notice.

### 26. Assignment and Change of Control

26.1 Developer shall not assign this Agreement without Align's prior written consent.

26.2 Align may assign this Agreement to an affiliate or in connection with a merger, acquisition, or sale of all or substantially all of its assets.

26.3 **Change of control.** Developer shall notify Align within fourteen (14) days of any change of control. Align may reassess Developer's risk profile and terminate on thirty (30) days' notice if the reassessment identifies material concerns.

### 27. Governing Law and Dispute Resolution

27.1 This Agreement is governed by the laws of the Province of Ontario and the federal laws of Canada applicable therein.

27.2 Any dispute shall be resolved as follows:

(a) good faith negotiation between designated representatives within fifteen (15) Business Days from the date one Party notifies the other in writing of the dispute;

(b) if unresolved, escalation to senior executives of the Parties for a further fifteen (15) Business Days;

(c) if still unresolved, and except for disputes relating to Section 6 (Tipping Off), Section 13 (Confidentiality), or Section 18 (Intellectual Property and Publicity), which shall be resolved by the courts of the Province of Ontario sitting in Toronto, any remaining dispute shall be finally resolved by arbitration administered by the London Court of International Arbitration in accordance with the LCIA Arbitration Rules in force at the time of commencement of the arbitration, which Rules are deemed to be incorporated by reference into this clause. The seat (legal place) of arbitration shall be London, England. The number of arbitrators shall be one. The language of the arbitration shall be English. The substantive law of the arbitration shall be the law of the Province of Ontario and the federal laws of Canada applicable therein. The arbitral award shall be final and binding on the Parties, and judgment on the award may be entered in any court of competent jurisdiction;

(d) the existence and content of any negotiation, escalation, or arbitration proceedings under this Section 27.2 shall be Confidential Information of both Parties; and

(e) nothing in this Section 27.2 prevents either Party from seeking urgent injunctive, declaratory, or other interim relief from a court of competent jurisdiction in aid of arbitration or in respect of any matter referred to in (c) above.

### 28. General Provisions

28.1 **Entire agreement.** This Agreement (together with Schedule 1 and any applicable Order Form) constitutes the entire agreement between the Parties and supersedes all prior discussions, negotiations, and agreements.

28.2 **Amendments.** Align may update these Terms with thirty (30) days' written notice (which may be given by posting an updated version with a revised version number and effective date, or by notifying Developer's designated contact). Continued use after the effective date constitutes acceptance. Developer may terminate before changes take effect.

28.3 **Severability.** If any provision is held invalid, it shall be modified to the minimum extent necessary, and the remaining provisions shall continue in full force.

28.4 **Waiver.** No failure or delay in exercising any right shall constitute a waiver.

28.5 **Third-party rights.** This Agreement does not confer rights on any person other than the Parties.

28.6 **Electronic acceptance.** Developer accepts this Agreement electronically, by executing an Order Form, creating a developer account, or accessing or using the API. The Parties expressly consent to acceptance and execution of this Agreement, and any Order Form, amendment, addendum, or notice hereunder, by electronic means, including signatures captured through DocuSign, Adobe Sign, or any equivalent electronic signature platform, by click-through or in-product acceptance, and by the exchange of executed counterparts by email or other electronic means. Each Party agrees that an electronic signature or electronic acceptance shall have the same legal force and effect as an original handwritten signature. Each Party further agrees that the electronic acceptance and execution of this Agreement is valid, enforceable, and admissible in evidence under the Personal Information Protection and Electronic Documents Act (Canada), the Ontario Electronic Commerce Act, 2000, and any equivalent electronic transactions or electronic signature legislation in the Developer's jurisdiction (including, without limitation, the United States Electronic Signatures in Global and National Commerce Act ("ESIGN"), the Uniform Electronic Transactions Act ("UETA") as adopted in any US state, Regulation (EU) No 910/2014 ("eIDAS"), and the United Kingdom Electronic Communications Act 2000). Each Party represents that the person accepting this Agreement on its behalf has been duly authorised to do so. Neither Party shall contest the validity, enforceability, or admissibility of this Agreement, or of any Order Form, amendment, addendum, or notice hereunder, on the grounds that it was accepted, executed, or delivered by electronic means.

28.7 **Independent contractors.** This Agreement does not create a partnership, joint venture, agency, or trust. Each Party is an independent contractor. Neither Party has authority to bind the other.

28.8 **Further assurances.** Each Party shall execute such documents and perform such acts as the other Party may reasonably require to give effect to this Agreement, including documents required by Align's banking partners or regulatory authorities.

28.9 **Complaints and litigation.** Each Party shall promptly provide the other with copies of any formal proceedings, investigations, subpoenas, or lawsuits received from an End-User, regulatory authority, or third party relating to the Services, unless disclosure is prohibited by Applicable Law.

28.10 **Group structure and parent company.** Align Payments Ltd is a wholly owned subsidiary of Align Labs Ltd, a company incorporated in England and Wales (Company No. 14583880, registered office: 90a High Street, Berkhamsted, Hertfordshire, HP4 2BL, United Kingdom) ("Align Labs"). Align Labs is the parent company of the Align group of companies and is the owner and licensor of the API and related technology, which Align Payments Ltd makes available to Developer under this Agreement pursuant to a sub-licence from Align Labs. Align Labs does not provide any regulated financial services to Developer or to End-Users, is not a party to this Agreement, and has no contractual, custodial, fiduciary, or other obligation to Developer or to any End-User in respect of the Services or any Transaction. All references in this Agreement to "Align" mean Align Payments Ltd only, except where the context expressly requires otherwise. Developer's sole recourse in respect of the Services and this Agreement is against Align Payments Ltd, and Developer waives any right of action, claim, or remedy against Align Labs in connection with the Services.

### 29. Survival

The termination or expiry of this Agreement shall not affect any rights, remedies, or obligations that have accrued before termination or expiry, or that are intended by their nature or by express provision to continue beyond it. Without limiting the foregoing, the following provisions survive termination or expiry of this Agreement and shall continue in full force and effect:

(a) **indefinitely:** Section 1 (Definitions); Section 4.5 (Requests for Information); Section 5.5 (Dual Relationship); Section 5.6 (Regulatory Reporting); Section 5.7 (No Agency or Mandatary Relationship); Section 6 (Tipping Off); Section 7.2 (Finality); Section 8 (Settlement Errors and Loss Allocation); Section 10.3 (Effects of Termination); Section 10.4 (Wind-Down Period); Section 11.3 (Liability for End-Users); Section 12 (Data Protection and Ownership); Section 13 (Confidentiality); Section 14 (Limitation of Liability); Section 15 (Indemnification); Section 16 (Representations and Warranties); Section 17 (Anti-Bribery and Corruption); Section 18.1 and 18.2 (Intellectual Property); Section 23.4 (Marketing Liability); Section 27 (Governing Law and Dispute Resolution); Section 28.1 (Entire Agreement); Section 28.3 (Severability); Section 28.5 (Third-party Rights); Section 28.9 (Complaints and Litigation); and this Section 29;

(b) **for the longer of five (5) years from termination or expiry, or the period required by Applicable Law (including the PCMLTFA):** Section 4.8 (Developer Recordkeeping); and Section 21 (Record Retention);

(c) **for two (2) years from termination or expiry:** Section 20 (Audit Rights); and

(d) **for twelve (12) months from termination or expiry:** Section 22 (Developer Security Obligations).

***

## Schedule 1 — Data Transfer and Consent Addendum

This Data Transfer and Consent Addendum (the "**Addendum**") forms part of, and is subject to, the Align API Developer Terms between Align Payments Ltd ("Align") and Developer (the "Agreement"). Capitalised terms used but not defined in this Addendum have the meanings given to them in the Agreement.

This Addendum governs the transfer of Personal Information from Developer to Align, Align's handling of that Personal Information, and the onward transfer of that Personal Information by Align to its service providers, banking partners, and regulatory authorities in connection with the Services. This Addendum is drafted for compliance with the law of Ontario and the federal law of Canada. It does not address the laws of any other jurisdiction.

### 1. Definitions

"**PIPEDA**" means the Personal Information Protection and Electronic Documents Act, S.C. 2000, c. 5, as amended from time to time, together with any regulations, guidance, and findings issued under it by the Office of the Privacy Commissioner of Canada.

"**PCMLTFA**" means the Proceeds of Crime (Money Laundering) and Terrorist Financing Act, S.C. 2000, c. 17, as amended from time to time, together with any regulations and guidance issued under it by FINTRAC.

"**Service Provider**" means, in relation to Align, any third party that Align engages to process Personal Information on Align's behalf in connection with the Services, including cloud hosting providers, KYC/KYB verification vendors, sanctions screening vendors, fraud analytics providers, and professional advisers.

"**Regulatory Authority**" means FINTRAC, the Financial Services Regulatory Authority of Ontario, the Office of the Privacy Commissioner of Canada, any provincial privacy commissioner, any Canadian law enforcement authority, and any court, tribunal, or self-regulatory body with jurisdiction over Align, Developer, or the Services.

"**Privacy Notice**" means Developer's privacy notice, privacy policy, or equivalent disclosure document provided to End-Users at or before the point of collection of Personal Information.

### 2. Roles of the Parties

2.1 **Developer as source.** Developer collects Personal Information directly from End-Users and transfers it to Align for the purposes set out in Section 3 of this Addendum. Developer is responsible for the lawful collection of Personal Information from End-Users under PIPEDA, including obtaining valid consent under sections 6.1 and 7 of PIPEDA.

2.2 **Align as independent recipient.** Align receives Personal Information from Developer and uses it for the purposes set out in Section 3. Align does not act as Developer's agent or processor in respect of Personal Information; Align determines the purposes and means of processing Personal Information independently, in accordance with its obligations as a money services business registered with FINTRAC. Each Party is independently accountable for the Personal Information it holds under PIPEDA.

2.3 **No joint controllership.** The Parties do not intend to create a joint controllership, partnership, or agency relationship in respect of Personal Information. Each Party is separately accountable for its own handling of Personal Information under PIPEDA.

### 3. Permitted Purposes

Align shall use Personal Information received from Developer only for one or more of the following purposes:

(a) verifying the identity of End-Users and conducting customer due diligence, enhanced due diligence, and ongoing monitoring as required by the PCMLTFA and FINTRAC guidance;

(b) screening End-Users and their Transactions against sanctions lists maintained by Canadian and applicable foreign sanctions authorities;

(c) processing, routing, converting, and settling Transactions through Align's Banking Partners and Service Providers;

(d) detecting, investigating, preventing, and reporting money laundering, terrorist financing, sanctions evasion, fraud, and other financial crime;

(e) responding to requests, inquiries, audits, examinations, or orders from a Regulatory Authority;

(f) filing suspicious transaction reports, large cash transaction reports, large virtual currency transaction reports, and any other reports required under the PCMLTFA;

(g) maintaining records required under the PCMLTFA and other Applicable Law;

(h) providing, maintaining, securing, and improving the Services; and

(i) complying with Align's obligations under the Agreement and Applicable Law.

Align shall not use Personal Information for marketing, advertising, or profiling unrelated to the purposes set out in this Section 3 without obtaining a separate consent directly from the relevant End-User.

### 4. Developer Warranties

4.1 **Lawful collection and consent.** Developer warrants that, in respect of each End-User whose Personal Information is transferred to Align:

(a) Developer has collected the Personal Information in accordance with PIPEDA and any other Applicable Law governing the collection of personal information;

(b) Developer has obtained the End-User's knowledge and consent, in a form valid under sections 6.1 and 7 of PIPEDA, to (i) the collection of the Personal Information, (ii) the transfer of the Personal Information to Align, (iii) Align's use of the Personal Information for the purposes set out in Section 3 of this Addendum, and (iv) the onward transfer of the Personal Information by Align to Service Providers, Banking Partners, and Regulatory Authorities as contemplated by Section 5 of this Addendum;

(c) the Personal Information is accurate, complete, and up to date to the extent necessary for the purposes set out in Section 3; and

(d) Developer has no reason to believe that any End-User has withdrawn consent or objected to the transfer of their Personal Information to Align.

4.2 **Privacy Notice.** Developer warrants that its Privacy Notice clearly and plainly discloses: (a) that Personal Information will be transferred to Align for the purposes set out in Section 3 of this Addendum; (b) that Align is a Canadian money services business registered with FINTRAC; (c) that Align may onward-transfer Personal Information to Service Providers, Banking Partners, and Regulatory Authorities inside and outside Canada; (d) that Personal Information will be retained for at least five (5) years as required by the PCMLTFA; and (e) how End-Users may contact Align to exercise their access and correction rights under PIPEDA. Developer shall provide Align with a copy of its current Privacy Notice on reasonable written request.

4.3 **Withdrawal of consent.** If an End-User withdraws consent to the transfer or use of their Personal Information by Align, Developer shall notify Align within two (2) Business Days. Align may nevertheless continue to retain and use the Personal Information to the extent required by the PCMLTFA, any other Applicable Law, or any order or request of a Regulatory Authority, and Developer acknowledges that withdrawal of consent does not override these statutory obligations.

4.4 **No special categories.** Developer shall not transfer to Align any information about an End-User's health, genetic or biometric characteristics, political opinions, religious beliefs, trade union membership, sexual orientation, or criminal record, except to the extent that a document containing such information (such as a government-issued identity document) is reasonably required for identity verification under the PCMLTFA.

### 5. Onward Transfers by Align

5.1 **Service Providers and Banking Partners.** Developer acknowledges and consents, on its own behalf and on behalf of each End-User whose consent Developer has obtained under Section 4.1, that Align may transfer Personal Information to its Service Providers and Banking Partners for the purposes set out in Section 3 of this Addendum. Such transfers may occur inside or outside Canada, including to the United States, the European Union, and the United Kingdom.

5.2 **Contractual safeguards.** Align shall ensure that each Service Provider is bound by written terms that require the Service Provider to (a) use Personal Information only for the purposes for which it was transferred, (b) implement safeguards appropriate to the sensitivity of the Personal Information and consistent with Principle 4.7 of Schedule 1 to PIPEDA, and (c) return or destroy Personal Information on termination of its engagement, subject to any retention obligations under Applicable Law. Align remains accountable under PIPEDA for Personal Information transferred to a Service Provider for processing.

5.3 **Banking Partners as independent recipients.** Developer acknowledges that Banking Partners receive Personal Information as independent recipients (and not as Align's service providers), because Banking Partners are subject to their own regulatory obligations including customer due diligence, sanctions screening, and recordkeeping. Each Banking Partner is independently accountable for its handling of Personal Information under its own legal and regulatory framework.

5.4 **Regulatory Authorities.** Align may disclose Personal Information to any Regulatory Authority to the extent required or permitted by Applicable Law, including in response to a production order, summons, search warrant, administrative request, examination, audit, or mandatory reporting obligation under the PCMLTFA. Align is not required to notify Developer or any End-User of any such disclosure where notification is prohibited by law (including the tipping-off prohibition in section 8 of the PCMLTFA).

5.5 **Transfers outside Canada.** Developer acknowledges that Personal Information transferred outside Canada by Align or its Service Providers may become subject to the laws of the receiving jurisdiction, including laws permitting access by foreign courts, law enforcement, and national security authorities. Align shall use contractual and technical measures consistent with the Office of the Privacy Commissioner of Canada's guidance on transfers for processing to protect Personal Information transferred outside Canada.

### 6. Safeguards

6.1 **Security standards.** Align shall implement and maintain administrative, physical, and technical safeguards appropriate to the sensitivity of the Personal Information, consistent with Principle 4.7 of Schedule 1 to PIPEDA and industry-standard practices for regulated financial institutions in Canada. These safeguards shall include, at a minimum: encryption of Personal Information in transit and at rest; role-based access controls; multi-factor authentication; logging and monitoring; secure disposal of records; and employee training.

6.2 **Personnel.** Align shall ensure that its Personnel who access Personal Information are bound by written confidentiality obligations and have received appropriate training on the handling of Personal Information under PIPEDA.

### 7. Breach Notification

7.1 **Align notification.** If Align becomes aware of a breach of security safeguards involving Personal Information that creates a real risk of significant harm to any End-User (as defined in section 10.1 of PIPEDA), Align shall notify Developer without unreasonable delay and in any event within seventy-two (72) hours of becoming aware of the breach. The notification shall include the information required by section 10.1 of PIPEDA and section 2 of the Breach of Security Safeguards Regulations to enable Developer to assess its own reporting obligations.

7.2 **Independent reporting.** Each Party shall independently assess its obligations to report a breach of security safeguards to the Office of the Privacy Commissioner of Canada and to affected End-Users under section 10.1 of PIPEDA. Neither Party's reporting obligation is contingent on the other Party having reported.

7.3 **Developer notification.** If Developer becomes aware of a breach of security safeguards affecting Personal Information in Developer's possession or control that has been or will be transferred to Align, Developer shall notify Align without unreasonable delay and in any event within seventy-two (72) hours.

### 8. Access and Correction Requests

8.1 **End-User requests to Developer.** Where an End-User submits an access or correction request to Developer under sections 8 and 9 of PIPEDA, Developer shall handle the request in respect of Personal Information held by Developer. If the request relates to Personal Information held by Align, Developer shall direct the End-User to contact Align's privacy officer at the address published on Align's website.

8.2 **End-User requests to Align.** Where an End-User submits an access or correction request to Align under sections 8 and 9 of PIPEDA in respect of Personal Information held by Align, Align shall handle the request in accordance with PIPEDA. Align may refuse or limit access to the extent permitted by sections 9(1) to 9(3) of PIPEDA, including where disclosure would reveal information about a money laundering or terrorist financing investigation or would contravene the tipping-off prohibition in section 8 of the PCMLTFA.

8.3 **Cooperation.** Each Party shall provide reasonable cooperation to the other Party in responding to End-User access, correction, and withdrawal requests, subject to Applicable Law and the tipping-off prohibition in section 8 of the PCMLTFA.

### 9. Retention and Disposal

9.1 **Retention period.** Align shall retain Personal Information for a minimum of five (5) years from the date of the relevant Transaction or the termination of the End-User relationship (whichever is later), as required by sections 12.1 and 13 of the Proceeds of Crime (Money Laundering) and Terrorist Financing Regulations. Align may retain Personal Information for a longer period to the extent required or permitted by any other Applicable Law.

9.2 **Disposal.** On expiry of the applicable retention period, Align shall securely dispose of Personal Information in accordance with Principle 4.5 of Schedule 1 to PIPEDA.

9.3 **Return on termination.** On termination or expiry of the Agreement, each Party may retain Personal Information to the extent required by Applicable Law, including the PCMLTFA. The confidentiality, security, and permitted-purpose obligations of this Addendum shall continue to apply to any Personal Information retained after termination for as long as it is retained.

### 10. Audit and Evidence of Compliance

On reasonable written notice (and not more than once per twelve (12) month period, unless a Regulatory Authority requires otherwise or a breach is suspected), Developer may request written evidence of Align's compliance with this Addendum, including a summary of Align's information security controls, its privacy policy, and the list of categories of Service Providers to which Personal Information is transferred. Align shall provide a reasonable response within twenty (20) Business Days of receipt of the request.

### 11. Liability

The Parties' respective liabilities under this Addendum are subject to the limitations and exclusions set out in Section 14 of the Agreement, except that nothing in this Addendum or the Agreement limits either Party's liability for statutory obligations under PIPEDA or the PCMLTFA that cannot be limited by contract.

### 12. Precedence and General Provisions

12.1 **Precedence.** In the event of any conflict between this Addendum and the main body of the Agreement in respect of the handling of Personal Information, this Addendum shall prevail.

12.2 **Governing law.** This Addendum is governed by the laws of the Province of Ontario and the federal laws of Canada applicable therein, and is subject to the dispute resolution provisions of Section 27 of the Agreement.

12.3 **Amendments.** Any amendment to this Addendum will be made in accordance with Section 28.2 of the Agreement.

12.4 **Term.** This Addendum takes effect on the Effective Date of the Agreement and continues for the duration of the Agreement. Sections 5.4, 7, 8, 9, and 11 of this Addendum survive termination of the Agreement for as long as Align retains any Personal Information.


# Terms & Conditions

Terms & Conditions | Align Labs Ltd.

## Align API - Terms and Conditions

**Effective date:** 16 January 2026

**Important - read carefully**

Align Labs Ltd owns Intikemp Spzoo and Align Payments Ltd. Regulated services are provided by regulated entities and licensed delivery partners as described below.

Align Labs Ltd is a UK-incorporated company (Company No. 14583880, registered at 90a High Street, Berkhamsted, Hertfordshire, HP4 2BL). Regulated services are provided by Align Payments Ltd (Canada MSB), Intikemp Spzoo (Poland VASP), and a network of financial institutions that are licensed in appropriate jurisdictions (delivery partners). \
\
Developers and users of Align services are subject to Know Your Customer (KYC) and Know Your Business (KYB) verification, which may require Enhanced Due Diligence (EDD). All transactions are monitored through Anti-Money Laundering (AML) procedures and may be reported to relevant authorities. Use of our services constitutes acceptance of these compliance measures.

By clicking "I accept" or by accessing or using the Service, you agree that you have read and understood, and as a condition to your use of the Service you agree to be bound by these Terms and Conditions and by Align Labs Ltd's Privacy Policy (together, these "Terms"). If you are not eligible or do not agree to the Terms, you do not have our permission to use the Service. Your use of the Service, and our provision of the Service to you, constitutes an agreement by you and by Align Labs Ltd to be bound by these Terms.

**No custody, no hosted wallets, no customer accounts - you must use your own wallet.**\
\
We do not open, provide, or maintain customer accounts, payment accounts, safeguarded accounts, or hosted wallets for any user - business or individual. We do not keep deposits, do not hold assets for safekeeping, and do not provide a custodial or account service.

You must use and control your own wallet and payout destination. You cannot deposit assets with Align for later withdrawal, cannot maintain a balance with Align, and cannot request withdrawals from Align.

For clarity, Align does not:

* issue per-customer reusable deposit addresses to Customers or End Users,
* maintain or display Customer balances,
* permit Customers to deposit assets for later withdrawal, or
* credit pooled assets to Customers in any internal ledger, register, or database.

Assets may transiently pass through Settlement Infrastructure solely to execute and settle a specific Order between the Customer and regulated counterparties or Delivery Partners. Such operational components are not Customer wallets or accounts, are not allocated to any Customer or End User, and are not available for storage, exchange-on-demand, safekeeping, or withdrawals.\
\
These Terms include and incorporate by reference the following additional documents, each as updated from time to time: the Acceptable Use Policy, Security Requirements, and the Data Processing Addendum.

***

### 1. Definitions

* **"Align"** - collectively refers to Align Labs Ltd and its subsidiaries and affiliates, including Align Payments Ltd (Canada MSB) and Intikemp Spzoo (Poland VASP). Regulated services are provided by these entities and licensed financial partners in applicable jurisdictions.
* **"Align Payments Ltd"** - an Align group company that provides regulated services as a Canada MSB.
* **"Intikemp Spzoo"** - an Align group company that provides regulated services as a Poland VASP.
* **"API"** - Align's application programming interfaces, SDKs, webhooks, documentation, and developer tools.
* **"Asset"** - a supported digital asset or fiat currency.
* **"Customer" or "you"** - the person or entity accepting these Terms to use the Service. If you use the Service on behalf of an organization, "you" refers to that organization.
* **"End User"** - your customer or counterparty.
* **"Operational Routing Wallets"** - blockchain addresses or wallets controlled by Align or its Delivery Partners and used solely as a technical step to route, execute, and settle a specific Order. Operational Routing Wallets:
  * are not hosted wallets for Customers or End Users,
  * are not allocated to any Customer or End User,
  * do not represent any Customer balance,
  * are not accessible by Customers or End Users, and
  * are not made available for deposit, storage, or later withdrawal.
* **"KYC" and "KYB"** - Know Your Customer and Know Your Business checks performed on you and, where required, your End Users.
* **"EDD"** - Enhanced Due Diligence performed where risk-based requirements apply.
* **"Order"** - your instruction to buy, sell, convert, transfer, or otherwise move value using the Service.
* **"Order Form"** - any written, click-through, or dashboard order confirmation setting out commercial terms such as fees or support tier.
* **"Payout Rails"** - supported networks and payment channels for settlement.
* **"Service"** - the Align API, routing, and related services provided under these Terms.
* **"Settlement Infrastructure"** - bank, payment, or partner infrastructure used solely to facilitate settlement steps between regulated counterparties and Delivery Partners in connection with a specific Order. Settlement Infrastructure is not a Customer account or safeguarded account, does not create any account relationship, and Customers acquire no legal or beneficial entitlement to any balance within such infrastructure.
* **"Dashboard"** - the Align web interface through which you may view activity logs, execution reports, and configuration. Any reports are informational and do not represent customer account statements or balances.
* **"Compliance Hold"** - a restriction placed on an Order or related settlement flow where required to comply with applicable law, sanctions requirements, AML/CFT obligations, fraud prevention controls, Travel Rule obligations, or Delivery Partner requirements, including while verifying information, completing screening, or responding to a lawful request.
* **"Suspended Order"** - an Order that is paused due to a Compliance Hold or a technical constraint and is not available for completion until the hold is lifted or the Order is cancelled.

***

### 2. Group and regulatory status

* Align Labs Ltd owns Intikemp Spzoo and Align Payments Ltd.
* Services are provided by regulated entities and licensed partners, depending on the nature of the activity and jurisdiction:
  * Align Payments Ltd - Canada MSB.
  * Intikemp Spzoo - Poland VASP.
  * A network of licensed financial institutions and payment providers as Delivery Partners in relevant jurisdictions.
* Align will allocate service components to the appropriate regulated provider and Delivery Partners based on geography, rail, and product. Nothing in these Terms requires Align to offer services in jurisdictions where it is unlawful to do so.

***

### 3. Agreement to Terms and eligibility

* These Terms form a binding contract when you click accept, generate API keys, or otherwise use the Service.
* If you use the Service on behalf of an organization, you represent that you have authority to bind that organization.
* Individuals and businesses may use the Service, subject to onboarding and applicable law. Nothing in these Terms affects your statutory rights if you are a consumer.

***

### 4. Service description

* Align provides an API-first, non-custodial execution-only routing service that enables you to submit Orders for supported Assets across supported networks and Payout Rails.
* We do not provide customer accounts, hosted wallets, deposit functionality, safekeeping, stored balances, or withdrawal functionality. You must provide and control your own wallet or payout destination.
* Operational Routing Wallets and Settlement Infrastructure may be used solely to execute and settle Orders on a transactional basis. They are not Customer wallets or accounts, are not allocated to you, are not accessible by you, and are not made available for storage or later withdrawal.
* Align does not market directly to your End Users and will not conduct user acquisition for the Service. Developers and partners may market their own products that integrate the Service, provided such marketing complies with applicable laws and does not state or imply that Align is soliciting or marketing to End Users.
* Network availability, payload formats, supported Assets, limits, and partners may change at any time in accordance with Section 28.

***

### 5. Onboarding, KYC, KYB, and EDD

* Use of the Service is subject to successful onboarding, including KYC and KYB checks on you and, if required, your End Users, directors, and beneficial owners. EDD may be required based on risk.
* You must promptly provide accurate and complete information and keep it current. You authorize us and regulated group entities to obtain information from third parties to verify identity, risk profile, and compliance status.
* We may approve, condition, restrict, or reject onboarding at our discretion and may suspend or terminate access if information is inaccurate, incomplete, or if required by law or our compliance policies.
* We may pause or suspend Orders pending completion of compliance checks, Delivery Partner requirements, or resolution of a Compliance Hold.

***

### 6. Non-custodial model, Operational Routing Wallets, and Compliance Holds

6. Non-custodial model, Operational Routing Wallets, and Compliance Holds

* Align operates a strictly non-custodial, execution-only routing model. Align does not provide custody, hosted wallets, customer accounts, deposits, stored balances, or withdrawal functionality.
* Operational Routing Wallets and Settlement Infrastructure may be used solely as technical steps to route, execute, and settle a specific Order between counterparties. These operational components:
  * are not allocated to any Customer or End User,
  * are not accessible by Customers or End Users,
  * do not represent any Customer balance,
  * do not provide deposit, storage, balance, or withdrawal functionality, and
  * do not create any customer account or custodial relationship.
* Do not send funds to any address expecting account-like features, stored balances, exchange-on-demand, or later withdrawals.
* You must not represent to End Users that Align provides custody, wallets, accounts, deposits, stored balances, or withdrawal functionality, or that Operational Routing Wallets are Customer wallets or accounts.
* For compliance and technical reasons, an Order or related settlement flow may be subject to a Compliance Hold. During any Compliance Hold or technical delay, the Customer has no ability to access, withdraw, or direct assets other than through completion or cancellation of the Order under these Terms, and Align does not maintain any Customer balance or stored value.
* Execution and routing are performed on a commercially reasonable best-efforts basis only. No particular price, venue, path, speed, or fill is guaranteed unless expressly agreed in an Order Form.

***

### 7. Role and execution

* We provide an execution-only routing service. We are not your advisor and do not provide investment, legal, tax, or accounting advice.
* We do not guarantee price, spread, or liquidity. Quotes are indicative until executed. Market conditions may change rapidly.

***

### 8. API access and license

* Subject to these Terms, Align grants you a limited, revocable, non-exclusive, non-transferable license to use the API solely to integrate your applications with the Service.
* You must keep API credentials and signing keys secure and confidential and are responsible for all activity under your credentials, including by your developers, vendors, and affiliates.
* You must comply with rate limits, use webhooks responsibly, and implement exponential backoff and idempotency keys for all Order-creating requests.
* You must not reverse engineer, scrape, resell, or provide the API to third parties except as necessary for your service integration.

***

### 9. Security and integration requirements

* You must maintain industry-standard security controls including secure key management, HSM or equivalent for production secrets, TLS 1.2 or higher in transit, encryption at rest for sensitive data, least-privilege access, and audited change control.
* You must implement transaction signing or allowlist controls for payout addresses where applicable and support webhook signature verification.
* You must notify Align within 24 hours of any security incident affecting the Service or data processed via the API and cooperate with our investigation and remediation.
* Best-efforts obligations are limited to Align controlled systems and do not extend to blockchains, banks, or Delivery Partners.

***

### 10. Orders, pricing, settlement, and finality

* You place Orders through the API using idempotency keys. An Order is accepted only when we return a clear executed status or settlement instruction.
* Fees may apply, including network fees, partner fees, and our fees. Fees can be deducted from proceeds. We will disclose fees before you place an Order.
* All executed trades and payments are final once settled on the relevant network or Payout Rail. This does not affect your statutory rights and does not limit refunds where required by law or for mis-execution caused by us or our Delivery Partners.
* You are fully responsible for entering correct settlement details, including wallet addresses, bank account details, network, memo tags, and any other required fields. If you or your developer provide incorrect details and we settle the trade, the settlement is final and you bear the risk and cost of any recovery.
* We may delay, hold, or cancel an Order if required by law, sanctions screening, fraud monitoring, risk controls, or partner requirements.
* Align has no obligation to recover funds sent to incorrect or inaccessible addresses and does not guarantee any recovery assistance.
* Compliance Holds and Suspended Order&#x73;**.** If we place a Compliance Hold, the Order may become a Suspended Order while we complete required screening, verification, Travel Rule messaging, fraud checks, or respond to a lawful request. We may require additional information from you or your End Users. If the hold is lifted, we may proceed with execution and settlement.
* No stored balance and no withdrawal right. Align does not maintain Customer balances for Suspended Orders and does not provide any storage or withdrawal service. If an Order is cancelled or cannot be executed or settled, we may, where feasible and subject to network conditions, compliance controls, and Delivery Partner processes, coordinate reversal or return via the relevant rail. Outcomes and timelines are not guaranteed.

***

### 11. Fees and taxes

* You agree to the fees communicated to you in your Order Form, Dashboard, or API response. We may update fees on notice in accordance with Section 28.
* You are responsible for all applicable taxes, duties, and reporting arising from your use of the Service and from your End Users' transactions.

***

### 12. Prohibited and restricted activities

You must not use the Service for activities prohibited by applicable law, sanctions, or our Acceptable Use Policy, including money laundering, terrorist financing, fraud, market manipulation, unlicensed financial services, unlawful gambling, illegal substances, privacy-invasive tracking, spyware, harvesting credentials, or dealing with sanctioned persons or jurisdictions.

***

### 13. Compliance, AML, CFT, sanctions, and Travel Rule

* Align, Align Payments Ltd, and Intikemp Spzoo operate compliance programs designed to meet applicable AML, CFT, and sanctions obligations. We screen transactions and counterparties and may request additional information or enhanced due diligence.
* You must implement and maintain your own AML program appropriate for your business or personal use and jurisdiction and ensure your End Users are not sanctioned or otherwise prohibited.
* Where laws require transmission of originator and beneficiary information for transfers, we will exchange required information with obliged entities via supported channels. You must supply accurate information necessary to satisfy these obligations.
* We may report suspicious activity and transactions to relevant authorities as required by law.

***

### 14. Representations and warranties

You represent, warrant, and covenant that:

* You and your End Users will comply with all applicable laws, including financial services, consumer protection, advertising and marketing laws, and data protection laws.
* You have authority to enter into these Terms and to perform your obligations, and if you use the Service as an individual you are legally capable of doing so.
* You will provide accurate, complete, and current information to Align, including correct settlement details for wallets, bank accounts, and Payout Rails, and you accept that trades are final once settled subject to your statutory rights and Section 10.
* If you or your developers market your products or services that integrate the Service, you will ensure such marketing complies with applicable laws and will not state or imply that Align solicits or markets to End Users.
* You will not make statements to End Users that conflict with these Terms, including about custody, refunds, or finality.

Align provides the Service on an "as is" and "as available" basis and disclaims all warranties to the maximum extent permitted by law, including implied warranties of merchantability, fitness for a particular purpose, and non-infringement. If you are a consumer, we do not exclude or limit warranties where it would be unlawful to do so.

***

### 15. Data protection and privacy

* Each party will comply with applicable data protection laws, including GDPR where applicable.
* Role allocation: for personal data you submit for us to provide the Service, you are the controller and we act as your processor under the Data Processing Addendum. For fraud prevention, security monitoring, abuse prevention, sanctions screening, and legal compliance, we act as an independent controller. The Data Processing Addendum forms part of these Terms and prevails over conflicting privacy language.
* We will notify you without undue delay and in any event within 72 hours after becoming aware of a personal data breach affecting Customer Personal Data and will provide legally required information.
* You must provide required notices and obtain necessary consents from End Users.

***

### 16. Availability, changes, and beta features

* We may modify, suspend, or discontinue any part of the Service at any time, including for maintenance, security, legal compliance, or partner changes. We will use reasonable efforts to provide notice where practicable.
* Target monthly uptime - 99.9 percent excluding planned maintenance notified at least 24 hours in advance where practicable. Support response targets are in Section 17.
* Beta or experimental features may be offered with reduced or different support and may be withdrawn at any time.

***

### 17. Support and incident response

* We provide developer support through documented channels and during business hours specified in your Order Form or Dashboard.
* Target response times - Priority 1 within 1 hour, Priority 2 within 4 hours, during support hours.
* You must escalate critical incidents promptly and provide relevant logs, request IDs, and reproducible steps.

***

### 18. Intellectual property, feedback, and IP indemnity

* Align and its licensors own all right, title, and interest in the Service and the API. No rights are granted except as expressly stated.
* If you provide feedback, you grant Align a perpetual, irrevocable, royalty-free license to use it without restriction.
* We will defend and indemnify you against third-party claims that the unmodified Service, as provided by us, infringes a UK or EU patent, copyright, or registered trademark, subject to your prompt notice and our control of the defense and settlement. This indemnity does not apply to claims arising from your code, combinations not supplied by us, or use in violation of these Terms. Our obligation is to procure the right to continue using the Service, modify the Service to be non-infringing, or terminate your affected use with a pro rata refund of any prepaid fees for unused services, where applicable.

***

### 19. Confidentiality

* Each party will keep the other's non-public information confidential and use it only to perform under these Terms, protecting it with at least the same care used to protect its own confidential information and no less than reasonable care.
* Confidentiality obligations do not apply to information that is public through no breach, known without restriction before receipt, independently developed without use of the other party's confidential information, or rightfully obtained from a third party without duty of confidentiality.
* Either party may disclose confidential information to the extent required by law or a competent authority, after giving reasonable notice and cooperation to seek confidential treatment.
* This section survives termination for 5 years, and trade secrets for so long as they remain trade secrets.

***

### 20. Limitation of liability

* To the maximum extent permitted by law, Align will not be liable for indirect, incidental, special, consequential, exemplary, or punitive damages, or for lost profits, revenues, goodwill, or data.
* Cap - Align's total aggregate liability arising out of or related to the Service will not exceed the greater of:
  * the fees you paid to Align in the 12 months before the event giving rise to the claim, or
  * $100,000.
* We are not liable for settlements sent to wallet addresses, bank accounts, or other destinations that you or your developers provided incorrectly. If incorrect or incomplete details are supplied and a trade is settled, that settlement is final and you bear the risk and cost of any recovery efforts.
* Nothing in these Terms excludes liability that cannot be excluded by law, including for fraud. If you are a consumer, we do not exclude or limit liability where it would be unlawful to do so, including liability for death or personal injury caused by negligence or for our failure to use reasonable care and skill. Nothing in these Terms affects your statutory rights.
* Nothing in these Terms limits liability for breach of data protection laws to the extent such limitation would be unlawful.

***

### 21. Indemnification by you

* You will defend, indemnify, and hold harmless Align, its affiliates, and their officers, directors, employees, and agents from and against claims, damages, losses, and expenses arising from or related to your or your End Users' use of the Service, your content or data, your breach of these Terms, or your violation of law.

***

### 22. Audit and information rights

* You will maintain accurate records relating to your use of the Service and compliance with these Terms and applicable law for at least 5 years or as required by law.
* On reasonable notice, you will provide information reasonably requested by Align or regulators to evidence compliance, subject to confidentiality obligations.
* Align will provide reasonable assurance on its controls, including a current third-party security report such as SOC 2 Type II or equivalent when available, or a written summary of controls on request.

***

### 23. Third-party services, networks, and Delivery Partner oversight

* Execution and settlement rely on third-party networks, blockchains, banks, and Delivery Partners. While we do not control those third parties, we will exercise reasonable skill and care in the selection, onboarding, and periodic monitoring of our Delivery Partners and will flow down appropriate legal, security, confidentiality, and sanctions obligations to them.
* Minimum assurances - we will use reasonable efforts to ensure that Delivery Partners:
  * for fiat services, hold and maintain required authorisations under applicable law in relevant jurisdictions, and
  * for digital asset services, maintain industry-standard security and compliance controls appropriate to their role.
* Evidence - on request, we will provide a written description of applicable Delivery Partner safeguards and, where available, a current third-party assurance report or equivalent summary.
* Substitution and changes - we may replace a Delivery Partner. If a replacement materially degrades the Service or materially increases risk, you may terminate the affected part of the Service on notice before the change takes effect.
* Incidents and mis-execution - we will coordinate response and remediation for incidents or mis-execution caused by our Delivery Partners in connection with the Service, subject to Section 20. This does not make us responsible for blockchain protocol failures or events outside our reasonable control.
* Blockchain risk acknowledgement remains unchanged - you acknowledge risks inherent in blockchain networks, including congestion, increased fees, smart contract vulnerabilities, and protocol changes.

***

### 24. Records, reporting, and reconciliations

* You are responsible for reconciling your transactions and maintaining records necessary for audits, accounting, and tax reporting.
* Align may make activity logs and execution or settlement reports available via the Dashboard or API. These are informational records of Orders and do not constitute account statements or indicate any stored balance with Align. You are responsible for exporting and retaining them.

***

### 25. Notices and complaints

* Legal notices to Align must be sent to: **<pavel@alignlabs.dev>** with a copy to **Align Labs Ltd, 90a High Street, Berkhamsted, Hertfordshire, HP4 2BL, United Kingdom**. We may provide notices to you via the Dashboard, email, or your registered address.
* A notice by email is deemed received when sent if no bounce is received. A notice by post is deemed received 2 business days after posting within the UK and 5 business days after posting internationally.
* Complaints: you may submit complaints to **<pavel@alignlabs.dev>**. We will acknowledge within 2 business days and aim to resolve within 15 business days. This does not limit any escalation rights you may have under applicable law.

***

### 26. Governing law and jurisdiction

* These Terms and any dispute or claim arising out of or in connection with them are governed by the laws of England and Wales.
* The courts of England and Wales have exclusive jurisdiction, except that if you are a consumer and live in another country, you may also bring proceedings in your local courts and applicable mandatory consumer laws may apply.

***

### 27. Miscellaneous

* **Entire agreement** - these Terms, the incorporated policies, and any Order Form constitute the entire agreement and supersede prior discussions.
* **Order of precedence** - if there is a conflict, an executed Order Form controls, then these Terms, then the documentation.
* **No account or custody relationship** - Nothing in these Terms creates or is intended to create any customer account relationship, custodial relationship, deposit relationship, fiduciary relationship, or safeguarded funds arrangement between Align and any Customer or End User.
* **Assignment** - you may not assign these Terms without our prior written consent. We may assign to an affiliate or in connection with a merger, acquisition, or sale of assets.
* **Force majeure** - neither party is liable for delay or failure due to events beyond its reasonable control, including network outages, labor disputes, or acts of government.
* **Facts over form** - regulatory status is determined by facts and conduct, not labels or disclaimers. If your conduct constitutes solicitation or requires authorization in a jurisdiction, you must obtain and maintain such authorization. Align operates on a non-solicitation basis in jurisdictions where solicitation requires authorization it does not hold, and may request confirmation that your use is on your exclusive initiative. Align will not market to your End Users.
* **Severability** - if any provision is unenforceable, the remainder remains in effect.
* **No waiver** - failure to enforce a provision is not a waiver.

***

### 28. Changes to Terms and the Service

* We may update these Terms from time to time. Changes become effective on the date specified in the notice or, if not specified, 30 days after posting. Your continued use of the Service after the effective date constitutes acceptance of the changes. For consumers, if you do not agree to a material change, you may stop using the Service before the effective date and request a pro rata refund of any prepaid fees for unused services, where applicable.
* We will give at least 30 days' prior notice for material adverse changes or fee increases where practicable. We will give at least 30 days' prior notice for breaking API changes where practicable.

***

### 29. Contact

* **Contracting entity:** Align Labs Ltd
* **Company number:** 14583880
* **Registered office address:** 90a High Street, Berkhamsted, Hertfordshire, HP4 2BL, United Kingdom
* **Support:** <pavel@alignlabs.dev>

***

### 30. Stablecoin risk disclosures

The following provisions apply to the use of stablecoins such as USDC, EURC, and USDT. By using the Service for such transfers, you acknowledge and accept associated risks, including regulatory, counterparty, stability, technical, and legal risks. Stablecoin values are not guaranteed and may fluctuate, including to zero. You agree Align has no liability for losses arising solely from market movements or network conditions. This does not affect your statutory rights and does not limit refunds where required by law or for mis-execution caused by us or our Delivery Partners. See the Stablecoin Risk Appendix if provided to you.

***

## Schedules

### Schedule 1 - Acceptable Use Policy

You and your End Users must not use the Service to:

* Violate any law, regulation, or order of a court or government authority.
* Conduct marketing, promotions, or financial promotions in violation of applicable local or global laws, including unfair or deceptive acts or practices, unlawful spam, or unsolicited communications, or represent that Align solicits or markets directly to End Users. Any developer or partner marketing must clearly be presented as its own and must not imply Align is marketing or soliciting.
* Deal with sanctioned persons or jurisdictions or attempt to evade sanctions.
* Facilitate or further money laundering, terrorist financing, fraud, or other financial crimes.
* Provide or receive consideration for illegal goods or services.
* Interfere with the security, integrity, or availability of the Service, including probing or scanning networks without authorization.
* Transmit malware, spam, or content that violates intellectual property or privacy rights.
* Resell, white-label, or sublicense the API except as expressly permitted in writing.
* Engage in categories listed as restricted in the Acceptable Use Policy page referenced in the Dashboard. We will provide at least 30 days' prior notice for material changes to restricted categories where practicable, unless required sooner by law or to address security or legal risks.

***

### Schedule 2 - Security Requirements

At a minimum, you must implement:

* Key and secret management using HSM, KMS, or equivalent with role-based access.
* Multi-factor authentication for all administrative access.
* Network segmentation, principle of least privilege, and regular access reviews.
* Encryption in transit and at rest for sensitive data.
* Secure SDLC practices, code reviews, and dependency management.
* Logging of API requests with secure retention and tamper protection.
* Business continuity and disaster recovery plans, tested at least annually.
* Incident response plan with 24-hour notification to Align of security incidents affecting the Service or data.
* For personal data, additional measures consistent with the Data Processing Addendum.

***

### Schedule 3 - Data Processing Addendum summary

* **Subject matter** - processing personal data as necessary to provide the Service.
* **Duration** - for the term of your use of the Service and any legally required retention period.
* **Nature and purpose** - provision of API-based routing and execution services.
* **Categories of data subjects** - your personnel and End Users.
* **Categories of personal data** - identification and KYC data, contact details, transaction metadata, and technical logs.
* **Subprocessors** - listed in the Dashboard and may be updated with notice. You may subscribe to updates.
* **International transfers** - safeguarded via appropriate mechanisms such as the UK IDTA or EU SCCs as applicable.
* The full DPA prevails over this summary and over conflicting privacy language in the Terms.


# Privacy Policy

Privacy Policy | Align Labs Ltd and Align Payments Ltd

Effective date: November 29, 2025

Align Payments Ltd values the privacy of individuals who use our website and related online services (collectively, our Services). This privacy policy (the Privacy Policy) explains how we collect, use, and share information from users of our Services to fulfil payment orders. It applies to information collected from our website visitors and customers (collectively, Customers, you, and/or your). By using our Services, you agree to the collection, use, disclosure, and procedures this Privacy Policy describes. Beyond the Privacy Policy, your use of our Services is also subject to our Terms of Service. This Privacy Policy does not apply to information that we process as a service provider on behalf of our business customers.

***

#### INFORMATION WE COLLECT

We may collect a variety of information from or about you or your devices from various sources, as described below.

**Information You Provide to Us**

**Registration and Profile Information.** When you establish an account with us, we ask you for your full legal name and email address. Should you want to utilise our services for fiat transfers, we will need to perform a further KYC/KYB check including but not limited to the collection of you or your company’s proof of address, proof of funds, photographic ID, and shareholder documentation.

**Communications.** If you contact us directly, we may receive additional information about you. For example, if you contact us for customer support, we may receive your name, email address, phone number, the contents of the message and any attachments you send to us, and any other information you choose to provide. If you subscribe to our newsletter, we will collect certain information from you, such as your email address. When we send you emails, we may track whether you open them to learn how to deliver a better customer experience and improve our Services.

**Careers.** If you decide that you wish to apply for a job with us, you may submit your contact information and your resume online. We will collect the information you choose to provide on your resume, such as your education and employment experience. You may also apply through LinkedIn. If you do so, we will collect the information you make available to us on LinkedIn.

**Payment Information.** If you make a purchase through our Services, your payment-related information, such as credit card, cryptocurrency wallet address, or other financial information, is collected by us or a third party payment processor on our behalf.

**Identity Verification Information.** We or a third party acting on our behalf may collect your government issued identity document such as Passport, Driver's License, National Identity Card, State ID Card, Tax ID number, passport number, driver's license details, national identity card details, visa information, and/or any other information deemed necessary to comply with our legal obligations under financial or anti-money laundering laws.\
\
**KYC AND KYB INFORMATION**

To comply with applicable financial, anti-money laundering, counter-terrorist financing, and sanctions regulations, Align Payments Ltd collects and processes information necessary to verify the identity of individuals (KYC) and businesses (KYB) using our Services. This includes:

**For individual verification (KYC):**

* Full legal name
* Residential address and proof of address documents
* Date of birth
* Government issued identification documents such as Passport, Driver's License, National Identity Card, State ID Card
* Photographic or video-based identity verification data
* Tax identification numbers where required
* Source of funds or source of wealth information
* Information about expected transaction activity
* Any additional information required for enhanced due diligence if triggered by risk assessments

**For business verification (KYB):**

* Legal entity name, registered address, incorporation documents
* Company registration or incorporation numbers
* Shareholder and ownership structure
* Ultimate Beneficial Owner (UBO) information and documentation
* Director and officer identity information
* Proof of business operations, business model descriptions, and relevant licences (if applicable)
* Source of funds or source of wealth information for the business or its owners
* Transaction flow details, projected volumes, and jurisdictions of operation
* Any other documents or data required to comply with regulatory obligations or partner requirements

We may obtain this information directly from you, from publicly accessible corporate registries, or from regulated third party identity verification providers acting on our behalf.

We use KYC and KYB information to:

* Verify your identity or the identity of your business
* Satisfy legal and regulatory obligations, including AML, CTF, sanctions screening, and fraud prevention
* Determine your eligibility to use our Services
* Monitor account activity as part of ongoing due diligence
* Detect and prevent financial crime
* Comply with requests from law enforcement, regulators, or banking partners

KYC and KYB data may be revalidated periodically or when triggered by changes in your activity, risk profile, or regulatory requirements.

***

#### Information We Collect When You Use Our Services

**Financial information.** To make it possible to fulfil transactions, we will ask you to provide the details of recipient bank accounts (such as account number, routing number). Additionally we may ask you for a reference message to describe the transaction. Sometimes to satisfy our efforts in fighting money laundering, we may ask questions surrounding the nature of the transaction before we can fulfil it. There may also be information that we collect that is not explicitly shared with us but can be inferred, such as the address of the crypto-currency wallet from which we received funds. Such information may be used for operational purposes or sometimes considered as a data point to mitigate the risk of financial crime on the platform.

**Usage Information.** On our website, to help us understand how you use our Services and to help us improve them, we automatically receive information about your interactions with our Services, such as the pages or other content you view and the dates and times of your visits. On our API, we analyse usage of our endpoints and behavioural patterns both for analytical purposes and for consideration in detecting signs of terms violation or financial crime.

**Information from Cookies and Similar Technologies.** On our website, we and third party partners collect information using cookies, pixel tags, or similar technologies. Our third party partners, such as analytics and advertising partners, may use these technologies to collect information about your online activities over time and across different services. Cookies are small text files containing a string of alphanumeric characters. We may use both session cookies and persistent cookies. A session cookie disappears after you close your browser. A persistent cookie remains after you close your browser and may be used by your browser on subsequent visits to our Services. Please review your web browser’s Help file to learn the proper way to modify your cookie settings. Please note that if you delete or choose not to accept cookies from the Service, you may not be able to utilize the features of the Service to their fullest potential.

***

#### HOW WE USE THE INFORMATION WE COLLECT

We may use the information we collect:

* To provide, maintain, improve, and enhance our Services;
* To personalize your experience on our Services such as by providing tailored content and recommendations;
* To understand and analyze how you use our Services and develop new products, services, features, and functionality;
* To communicate with you, provide you with updates and other information relating to our Services, provide information that you request, respond to comments and questions, and otherwise provide customer support;
* To facilitate the connection of third party services or applications, including services similar to ours in other jurisdictions;
* To generate anonymized, aggregate data containing only de-identified, non-personal information that we may use to publish reports;
* To facilitate transactions and payments;
* To find and prevent fraud, and respond to trust and safety issues that may arise;
* For compliance purposes, including enforcing our TOS or other legal rights, or as may be required by applicable laws and regulations or requested by any judicial process or governmental agency; and
* For other purposes for which we provide specific notice at the time the information is collected.

***

#### HOW WE SHARE THE INFORMATION WE COLLECT

We do not share or otherwise disclose information we collect from or about you except as described below or otherwise disclosed to you at the time of the collection. All data sharing actions are performed within the framework of the EU’s General Data Protection Regulation.

**Affiliates.** We may share any information we receive with our affiliates for any of the purposes described in this Privacy Policy.

**Vendors and Service Providers.** We may share any information we receive with vendors and service providers retained in connection with the provision of our Services.

**Third Party App Integrations.** If you utilize a third party application such as a blockchain wallet with our Services, we may share information, such as details necessary to effectuate a transaction, with that third party.

**Marketing.** We do not rent, sell, or share information about you with nonaffiliated companies for their direct marketing purposes, unless we have your permission.

**Analytics Partners.** We use analytics services to collect and process certain analytics data. These services may also collect information about your use of other websites, apps, and online resources. To help us understand how you use our Services and to help us improve them, we automatically receive information about your interactions with our Services, like the pages or other content you view, and the dates and times of your visits.

**As Required By Law and Similar Disclosures.** We may access, preserve, and disclose your information if we believe doing so is required or appropriate to: (a) comply with law enforcement requests and legal process, such as a court order or subpoena; (b) respond to your requests; or (c) protect your, our, or others’ rights, property, or safety.

**Merger, Sale, or Other Asset Transfers.** We may transfer your information to service providers, advisors, potential transactional partners, or other third parties in connection with the consideration, negotiation, or completion of a corporate transaction in which we are acquired by or merged with another company or we sell, liquidate, or transfer all or a portion of our assets. The use of your information following any of these events will be governed by the provisions of this Privacy Policy in effect at the time the applicable information was collected.

**Consent.** We may also disclose your information with your permission.

***

#### YOUR CHOICES/PREFERENCES

**Marketing Communications.** You can unsubscribe from our promotional emails via the link provided in the emails. Even if you opt out of receiving promotional messages from us, you will continue to receive administrative messages from us.

***

#### SECURITY

We make reasonable efforts to protect your information by using safeguards designed to improve the security of the information we maintain. However, as no electronic transmission or storage of information can be entirely secure, we can make no guarantees as to the security or privacy of your information.

***

#### CHILDREN

We forbid anyone under the age of 18 using our services. If you learn that a child has provided us with personal information in violation of this Privacy Policy, then you may alert us at <support@alignpayments.com>.

***

#### INTERNATIONAL TRANSFERS OF DATA

Our Services are hosted in the European Union and intended only for visitors from countries we are regulated to serve. If you choose to use the Services from the United States or other regions of the world with laws governing data collection and use that may differ from EU law, then please note that you are transferring your personal information outside of those regions to the European Union for storage and processing. Also, we may transfer your data from the EU to other countries or regions in connection with storage and processing of data, fulfilling your requests, and operating the Services. By providing any information, including personal information, on or to the Services, you consent to such transfer, storage, and processing.

***

#### ACCESSING/UPDATING YOUR INFORMATION

You can update your account or close your account through your profile settings.

***

#### CHANGES TO THIS PRIVACY POLICY

We will post any adjustments to the Privacy Policy on this page, and the revised version will be effective when it is posted. If we materially change the ways in which we use or share personal information previously collected from you through the Services, we will notify you through the Services, by email, or other communication.

***

#### CONTACT US

The Service is offered by **Align Payments Ltd**, a regulated entity based in Canada. For any questions, please contact <pavel@alignlabs.dev>.&#x20;

&#x20;


