Wire Out

Localpayment enables you to withdraw funds from your Localpayment account and deposit them into your external bank account through both API integration and the Dashboard interface. This guide covers the complete Wire Out workflow for fund settlement, detailing the authorization flow, API implementation, and status tracking.

Before You Begin

Ensure you have:

Additional Wire Out Requirements:

  • Sufficient available balance in your Localpayment account.
  • User role with sufficient permissions for Wire Out authorization (see documentation on roles and permissions).
  • External bank account details (SWIFT code, account number, beneficiary information).
  • Understanding of your projected balance and settlement timing.

Implementation Guide

Localpayment provides two methods for processing Wire Outs: API integration for automated processing and Dashboard for manual operations.


Understanding Wire Out Settlement

Wire Out transactions follow a specific authorization and validation workflow :

  1. Balance Sheet Settlement: Money is released and becomes available in your account balance.
  2. Client Settlement: After 15 days of payment, funds are released to the client, withdrawable when minimum settlement threshold is met.

Step 1: Process Wire Out via API

To initiate a Wire Out transaction through API, send a POST request to the Wire Out endpoint.

Key Request Parameters

The request requires several key parameters:

ParameterDescriptionRequired
transactionTypeMust be set to "WireOut"
externalIdYour unique reference ID for the transaction
countryCountry code in ISO format where payment will be processed
currencyCurrency for the transaction amount
amountAmount to be debited from your account
accountNumberYour Localpayment account number
toRecipient bank details object
to.nameRecipient bank name
to.swiftBank identification code for international transfers
to.addressBank's address
to.accountNameName of the account holder
to.accountNumberRecipient's account number
to.routingNumberTransaction identifier code (US transfers)
to.beneficiaryAddressAddress of the account holder
commentOptional note about the transaction

Example Request

Below is an example using curl:

curl --request POST \
  --url https://api.stage.localpayment.com/api/account/wire-out \
  --header 'Authorization: Bearer <your_access_token>' \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --data '{
    "transactionType": "WireOut",
    "externalId": "c048aaea-5916-4dfe-add9-e3a720c42a08",
    "country": "ARG",
    "currency": "ARS",
    "amount": 1000,
    "accountNumber": "032.032.00000016",
    "to": {
      "name": "BBVA Arg.",
      "swift": "BCSARG",
      "address": "Centro 123",
      "accountName": "John Doe",
      "accountNumber": "3220001805117354710015",
      "beneficiaryAddress": "beneficiaryAddress"
    },
    "comment": "Centro 456"
  }'

See all available parameters in the request.


Step 2: Handle the Response

Successful Response

A successfully initiated Wire Out returns transaction details with initial status:

{
    "transactionType": "WireOut",
    "externalId": "c048aaea-5916-4dfe-add9-e3a720c42a08",
    "internalId": "c0e5ec40-b5b6-49aa-8c2d-b1ba01080100",
    "country": "ARG",
    "currency": "ARS",
    "clientCode": "0001",
    "creationDate": "2025-09-29T18:41:49.940+00:00",
    "errors": [],
    "status": {
        "code": "100",
        "description": "RECEIVED",
        "detail": "WIRE OUT"
    },
    "accountNumber": "032.032.00000016",
    "amount": 1000.0,
    "fees": {
        "description": "Fee",
        "currency": "ARS",
        "amount": 30.0,
        "account": "032.032.00000016"
    },
    "localTaxes": [],
    "withHoldings": [],
    "comment": "WireOut_External"
}

Key Response Fields

ParameterDescriptionUse Case
externalIdYour reference for the original transaction.Reconciliation and tracking.
internalIdLocalpayment's unique refund identifier.Support and audit purposes.
status.codeCurrent transaction status code.Status monitoring.
creationDateWhen the transaction was created.Audit trail and reporting.

Error Response

When a Wire Out request fails, you'll receive detailed error information:

{
    "status": {
        "code": "300",
        "description": "REJECTED",
        "detail": "[to.address must not be empty]"
    },
    "timestamp": "2025-09-29 18:52:05.640378596",
    "errors": [
        {
            "code": "300",
            "detail": "to.address must not be empty"
        }
    ]
}

Step 3: Track Wire Out Status

After initiating a Wire Out, monitor its progress through these methods:

Common Wire Out Status Codes

CodeStatusDescription
100PendingAuthTransaction created, pending authorization
101PendingDebitTransaction in process after Localpayment validation
102ReceivedTransaction authorized
200CompletedFunds successfully transferred to destination bank
404RejectedProvider code doesn't match account number
511RejectedZero amount specified in request
716RejectedRejected by administrator during authorization
717RejectedByBankTransaction rejected by destination bank
📝

Email Notifications: You will receive email notifications when transactions reach Completed or Rejected statuses, regardless of whether they were initiated via API or Dashboard.


Dashboard Wire Out Processing

Wire Out transactions can also be processed through the Localpayment Dashboard interface. This method provides a visual workflow for managing fund transfers and is particularly useful for:

  • One-time settlements** that don't require API automation.
  • Administrative oversight** with visual authorization workflows.
  • Quick fund transfers without development resources.

For detailed instructions on processing Wire Out transactions through the Dashboard, including step-by-step guidance and interface walkthroughs, please refer to the Dashboard Wire Out Guide.


Testing Your Integration

Test Scenarios

Verify your integration handles these scenarios:

  1. Successful Wire Out: Process transfer with valid parameters and sufficient balance.
  2. Insufficient Funds: Attempt transfer exceeding account balance.
  3. Invalid Bank Details: Test with incorrect SWIFT codes or account numbers.
  4. Authorization Workflow: Verify pending authorization status and approval process.

Next Steps