Internal Domestic Transfer

Secure internal transfers between your Localpayment accounts. Maintain liquidity and manage funds domestically without currency conversion.

An internal domestic transfer allows you to securely move funds between your Localpayment accounts within the same country and currency. This feature is ideal for managing liquidity across multiple accounts or redistributing funds for operational efficiency.

Use Cases

  • Portfolio Rebalancing: Dynamically reallocate capital across client portfolios to swiftly capitalize on market movements and adhere to strategic investment mandates.
  • Centralized Liquidity Management: Consolidate cash positions from various operational accounts to optimize working capital, ensure timely payments, and maximize fund utilization.
  • Structured Fund Distribution: Automate the disbursement of budgets to departments, projects, or cost centers from a central account while maintaining full visibility and control.
  • Regulatory & Risk Compliance: Proactively manage capital reserves and risk buffers by segregating funds across designated account types to meet regulatory requirements and internal policies.

Prerequisites

Before initiating internal domestic transfers, ensure you have:

  • Sufficient funds in your source account
  • Valid API credentials with internal transfer permissions
  • Account verification for both source and destination accounts
  • Same country registration for both accounts
⚠️

Important

Both accounts must be registered in the same country.


API Integration

To create Internal Domestic Transfer, send a POST request to the Create Internal Transfer endpoint.

Endpoint

POST https://api.stage.localpayment.com/api/internal-transfer

Authentication

Authorization: Bearer <your_access_token>

Key Request Parameters

ParameterTypeDescription
externalIdstringYour unique transaction identifier
countrystringISO alpha-3 country code
currencystringISO currency code
amountnumberTransfer amount
transactionTypestringMust be "InternalDomesticTransfer"
client.from.accountNumberstringSource account number
client.to.accountNumberstringDestination account number

Request Example

curl --request POST \
      --url https://api.stage.localpayment.com/api/internal-transfer \
      --header 'Authorization: Bearer <your_access_token>' \
      --header 'Accept: application/json' \
      --header 'Content-Type: application/json' \
      --data '{
        "externalId": "8888ad65-aa6e-4643-b9ba-ff62318fd90b",
        "country": "ARG",
        "currency": "ARS",
        "amount": 1000,
        "transactionType": "InternalDomesticTransfer",
        "client": {
          "type": "Client",
          "from": {
            "accountNumber": "032.032.00000078"
          },
          "to": {
            "accountNumber": "032.032.00000079"
          }
        }
      }'

Response Handling

Our API provides comprehensive response data for effective transaction management and reconciliation.

Success Response

{
    "transactionType": "InternalDomesticTransfer",
    "externalId": "8888ad65-aa6e-4643-b9ba-ff62318fd90b",
    "internalId": "cda1c606-a14f-4cab-a323-82c09f2ca8b1",
    "country": "ARG",
    "currency": "ARS",
    "clientCode": "0001",
    "creationDate": "2025-10-14T15:44:53.374+00:00",
    "errors": [],
    "status": {
        "code": "200",
        "description": "Completed",
        "detail": "INTERNAL TRANSFER"
    },
    "amount": 1000,
    "client": {
        "type": "Client",
        "from": {
            "clientCode": "0001",
            "accountNumber": "032.032.00000078"
        },
        "to": {
            "clientCode": "0001",
            "accountNumber": "032.032.00000079",
            "amount": 966.0
        }
    },
    "fees": {
        "description": "Fee",
        "currency": "ARS",
        "amount": 21.0,
        "account": "032.032.00000078"
    },
    "localTaxes": [
        {
            "code": "0001",
            "percentage": 1.3,
            "description": "IDC",
            "currency": "ARS",
            "fxSource": 1360.092976,
            "fxQuote": 0.0,
            "amount": 13.0,
            "account": "032.032.00000078"
        }
    ],
    "withHoldings": [],
    "code": "200"
}

Key Response Fields

FieldDescription
internalIdSystem-generated unique identifier for tracking
status.codeTransaction status: 200 (COMPLETED), 702+ (ERRORS)
client.to.amountNet amount credited to destination account
fees.amountTotal processing fees deducted
localTaxesArray of applicable local taxes
payment.creditedAmountFinal amount received in destination account

Error Responses

    {
      "externalId": "TXN_INVALID_123",
      "internalId": "fc2c831c-d0f1-41f6-8a59-0ecd426c087d",
      "errors": [
        {
          "code": "702",
          "detail": "Account not configured for InternalDomesticTransfer"
        },
        {
          "code": "703", 
          "detail": "Account countries must match"
        },
        {
          "code": "704",
          "detail": "Insufficient funds in source account"
        }
      ],
      "status": {
        "code": "702",
        "description": "REJECTED",
        "detail": "Configuration validation failed"
      }
    }

Transaction Status Tracking

Monitor your currency exchanges through multiple channels:

Status Lifecycle

CodeStatusDescription
100InProgressInProgress
102PendingDebitPending Debit
103PendingCreditPending Credit
200CompletedINTERNAL TRANSFER
303RejectedThis exchange rate token has expired.
🗒️

Complete Reference

View all status codes in our Transaction Status Documentation.


Resources & Next Steps

Maximize your integration success with these essential resources


Pro Tip

Always test your workflow in our sandbox environment before deploying to production. This ensures your error handling, webhook processing, and status tracking work correctly across all scenarios.


🎧

Need Help?

Contact our support team if you experience any issues or need assistance for integration.