On-Chain (Stablecoin to Stablecoin)

This guide provides an overview of how to facilitate on-chain transactions (stablecoin to stablecoin) using the Harbor API, including customer registration, required headers, and API request examples.


❗️

Transfer V1 API will no longer be maintained and will be shut down on April 1, 2026.

All integrators must migrate to Transfer V2 API to continue processing transactions on OwlPay Harbor.

After 2026-04-01, all requests sent to any v1 Transfer endpoint will no longer be processed.

Harbor on-chain API allows you to securely facilitate stablecoin-to-stablecoin conversions between different chains, empowering fintech platforms and wallets to offer reliable cross-chain liquidity, compliance-friendly operations, and real-time settlement visibility.

🛑

Requirements

The customer must agree to Harbor’s Terms of Service.
An Idempotency Key (X-Idempotency-Key) is required to prevent duplicate submissions.

API Request: On-chain with stablecoin to stablecoin (Stellar USDC -> Ethereum USDC)

curl --location --request POST 'https://harbor-sandbox.owlpay.com/api/v1/transfers' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'X-API-KEY: {{API_KEY}}' \
--header 'Idempotency-Key: {{Idempotency-Key}}' \
--data-raw '{
    "on_behalf_of": "{{YOUR_CUSTOMER_UUID}}",
    "destination": {
        "asset": "USDC",
        "chain": "ethereum",
        "address": "0x8C883c6cc8521Fa7D752035854624667985081ed",
        "is_self_transfer": false,
        "transfer_purpose": "Salary"
    },
    "source": {
        "chain": "stellar",
        "asset": "USDC",
        "amount": 1000
    },
    "commission": {
        "percentage": 1,
        "amount": 0
    },
    "application_transfer_uuid": "{{YOUR_APPLICATION_TRANSFER_UUID}}"
}'

The endpoint will return a response as shown below.

{
    "data": {
        "uuid": "transfer_LBjPMfTPGYbWQOllfJyeRoJL9RjVOe14BQ8rgV9H",
        "object": "transfer",
        "status": "pending_customer_transfer_start",
        "type": "swap",
        "settlement_strategy": "immediate",
        "source_received": false,
        "on_behalf_of": "cus_g6nNgXEqDZi65TvsvXqCE80z9xBlzhtVYwPEIRk1",
        "source": {
            "chain": "stellar",
            "asset": "USDC",
            "amount": "1000.000000"
        },
        "destination": {
            "asset": "USDC",
            "chain": "ethereum",
            "address": "0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db",
            "address_memo": null,
            "is_self_transfer": false,
            "beneficiary_name": "John",
            "amount": "987.020000",
            "transfer_purpose": "Salary",
            "beneficiary_receiving_wallet_type": null,
            "beneficiary_institution_name": null
        },
        "application_transfer_uuid": "OWLTING_HARBOR_OFF_RAMP_00109",
        "transfer_instructions": {
            "instruction_chain": "stellar",
            "instruction_address": "0x032f9305732582687d76e97e01e9d978fe795136",
            "instruction_memo": null
        },
        "commission": {
            "percentage": 1,
            "amount": 0
        },
        "receipt": {
            "initial_asset": "USDC",
            "initial_amount": "1000.000000",
            "commission_fee": "10.000000",
            "harbor_fee": "5.000000",
            "final_asset": "USDC",
            "final_amount": "987.020000",
            "exchange_rate": "1",
            "transaction_hash": null
        },
        "meta_data": null,
        "created_at": "2025-12-16T14:20:58+00:00",
        "updated_at": "2025-12-16T14:20:58+00:00"
    }
}