Same-Currency Transfers

Create a transfer-out request

Changed on

Deprecated. Use POST /quotes instead.

Same-currency transfers are now served by the quote endpoint. Create a quote with an internal account source and an external account destination and set immediatelyExecute: true to move the funds in a single request, exactly as this endpoint does. This endpoint continues to work and its request and response shapes are unchanged.

To migrate a request to POST /quotes:

  • add sourceType: ACCOUNT to source and destinationType: ACCOUNT to destination; the account IDs and destination.paymentRail are unchanged
  • rename amount to lockedCurrencyAmount and add lockedCurrencySide: SENDING
  • remittanceInformation and purposeOfPayment carry over unchanged
  • add immediatelyExecute: true to keep the single-request behavior

The quote response is a Quote rather than a Transaction; read transactionId from it to track the resulting transaction.

Transfer funds from an internal account to an external account for a specific customer.

post/transfer-out

Request

  • Base URL: https://api.lightspark.com/grid/2025-10-13
  • URL: https://api.lightspark.com/grid/2025-10-13/transfer-out
  • Auth: HTTP basic

Headers

Idempotency-Keystring
Example:550e8400-e29b-41d4-a716-446655440000

A unique identifier for the request. If the same key is sent multiple times, the server will return the same response as the first request.

Request body

amountinteger

Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)

remittanceInformationstring

Free-form information about the payment that travels with it to the recipient. The field this populates depends on the payment rail: for ACH it populates the Addenda record, for FedNow and RTP it populates the remittanceInformation field, and for wires it populates the OBI (Originator to Beneficiary Information) / beneficiary information.

purposeOfPayment'GIFT' | 'SELF' | 'GOODS_OR_SERVICES' | 'EDUCATION' | 'HEALTH_OR_MEDICAL' | 'REAL_ESTATE_PURCHASE' | 'TAX_PAYMENT' | 'LOAN_PAYMENT' | 'UTILITY_BILL' | 'DONATION' | 'TRAVEL' | 'FAMILY_SUPPORT' | 'SALARY_PAYMENT' | 'EXPORTED_GOODS_PREPAYMENT' | 'EXPORTED_GOODS_POSTPAYMENT' | 'SERVICE_CHARGES' | 'OFFICE_EXPENSES' | 'DELIVERY_FEES' | 'HOTEL_ACCOMMODATION' | 'OTHER'

The purpose of the payment. This may be required when sending to certain geographies (e.g. India). Business payments to China must use one of the China-specific purposes rather than GOODS_OR_SERVICES, because each purpose requires its own supporting documents. Those purposes are EXPORTED_GOODS_PREPAYMENT, EXPORTED_GOODS_POSTPAYMENT, SERVICE_CHARGES, OFFICE_EXPENSES, DELIVERY_FEES, TRAVEL, and HOTEL_ACCOMMODATION. The six China-only values are rejected on other corridors.

Example request

{
  "source": {
    "accountId": "InternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123"
  },
  "destination": {
    "accountId": "ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965",
    "paymentRail": "ACH"
  },
  "amount": 12550,
  "remittanceInformation": "12345"
}

Response

Transfer-out request created successfully.

OR
OR

Example response

{
  "id": "Transaction:019542f5-b3e7-1d02-0000-000000000004",
  "destination": {
    "destinationType": "ACCOUNT",
    "currency": "EUR",
    "accountId": "ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123",
    "onChainTransaction": {
      "transactionHash": "h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx",
      "network": "SOLANA"
    }
  },
  "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
  "platformCustomerId": "18d3e5f7b4a9c2",
  "settledAt": "2025-08-15T14:30:00Z",
  "createdAt": "2025-08-15T14:25:18Z",
  "updatedAt": "2025-08-15T14:30:00Z",
  "receiptDeliveryConfirmedAt": "2025-08-15T14:31:00Z",
  "agentId": "Agent:019542f5-b3e7-1d02-0000-000000000042",
  "description": "Payment for invoice #1234",
  "sentAmount": {
    "amount": 12550,
    "currency": {
      "code": "USD",
      "name": "United States Dollar",
      "symbol": "$",
      "decimals": 2
    }
  },
  "exchangeRate": 1.08,
  "quoteId": "Quote:019542f5-b3e7-1d02-0000-000000000006",
  "refund": {
    "reference": "UMA-Q12345-REFUND",
    "initiatedAt": "2025-08-15T14:30:00Z",
    "settledAt": "2025-08-15T14:35:00Z",
    "status": "COMPLETED",
    "reason": "TRANSACTION_FAILED"
  },
  "counterpartyInformation": {
    "FULL_NAME": "John Sender",
    "BIRTH_DATE": "1985-06-15",
    "NATIONALITY": "DE"
  },
  "source": {
    "sourceType": "ACCOUNT",
    "currency": "USD",
    "accountId": "InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965",
    "onChainTransaction": {
      "transactionHash": "h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx",
      "network": "SOLANA"
    }
  },
  "receivedAmount": {
    "amount": 12550,
    "currency": {
      "code": "USD",
      "name": "United States Dollar",
      "symbol": "$",
      "decimals": 2
    }
  },
  "fees": 10,
  "reconciliationInstructions": {
    "reference": "UMA-Q12345-REF",
    "transactionHash": "0x9f2c6b6f4b6c8f2a8d9e0b1c2d3e4f5061728394a5b6c7d8e9f00112233445566"
  }
}

Changes

    • warning

      added the new ACH_SAME_DAY enum value to the ///////// response property for the response status

    • warning

      added the new ACH_SAME_DAY enum value to the //////////// response property for the response status

    • warning

      added the new ACH_SAME_DAY enum value to the ////// response property for the response status

    • warning

      added the new ACH_SAME_DAY enum value to the ///////// response property for the response status

    • info

      added the new ACH_SAME_DAY enum value to the request property /////

    • warning

      removed the optional property ////////////// from the response with the status

    • info

      added the optional property /////////// to the response with the status