Internal transfers

Learn how to move funds between your Localpayment accounts both domestic and foreign using the Internal Transfer feature.

Whenever you need to move funds between your Localpayment accounts for whatever purpose, such as consolidating the balance of several accounts or managing cash flow. You can generate an Internal Tarsnfer using the Localpayment Panel or by making a request on the Localpayment API.

There are two types of internal transfers in Localpayment:

Internal Domestic Transfer

¿What is an Internal Domestic Transfer?

An internal domestic transfer allows you to move funds across your Localpayment accounts that are in the same country while keeping the original currency.


Prerequisites

Before requesting an internal domestic transfer, you must have completed the following steps:


1. Environment access

You will need to conclude your onboarding process and your Stage login credentials or your Production credentials (if you are already certified) in order to create a payment via API or Panel.

⚠️

Important

To produce an internal domestic transfer, make sure you have the appropriate user permissions.


2. Whitelist your IP

⚠️

Important

If you are going to create an internal domestic transfer via the Panel skip this step.

Before using the APIs, you must whitelist your IP address in the Panel to ensure secure access to LocalPayment services.


3. Generate an Authentication Token

⚠️

Important

If you are going to create an internal domestic transfer via the Panel skip this step.

To interact with LocalPayment's APIs, you need an authentication token.

Send a POST request to the Generate an Acces Token endpoint and include your API credentials in the request; to generate an authentication token.

Request example

curl --request POST \
     --url https://api.stage.localpayment.com/api/token/ \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "username": "[email protected]",
  "password": "1234"
}
'

Successful response

{
  "refresh": "eyJ0eXAiOiJKV1QiLCJhbGccM5kYO7o4iOiJIU18jaiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTczNTMxOTkyOSwianRpIjoiZWUxMDE3MTUwY2JhNGM1NTg0MjYyZmRkZTdiOThiNGQiLCJ1c2VyX2lkIjoxMDAwLCJzdXBlcnVzZXIiOnRydWUsImlzX3N0YWZmIjp0cnVlLCJybaCIsImV4cCI62xlcyI6WyJBTEwiXSwiY291bnRyaWVzIjpbIkFMTCJdLCJjb21wYW55IjoiQUxMIiwiY2xpZW50X2NvZGUiOiJBNzaW9uTEwiLCJwZXJtaXcyI6W119.6siymomkQ72yMvHGU9sMCO4h-cxpNgQXor",
  "access": "eyJ0eXAiOiJKV1QiLCJhJIUzI1NiJ9.eyJ0b2tlbl90eXBlIbGciOijoiYWNjZXNzIiwiZXhwIjoxNzM1MjMzODI5LCJqdGkiOiJiMDRmNzQ3YWEjOCIsIn4Mjg0YjM0YmMwN2Y4ZjVkOWM0NWFVzZXJfaWQiOjEwMDAsInN1cGVydXNlciI6dHJ1ZSwiaXNfc3RhZmYiOnRy3VudHJpZXMiOljpbIkFsiQUxMIl0sImNvbXBhbnkiOiJBTEwiLCJjbGllbnRfY29kZSI6IkFMTCIsInBlcm1pc3Npb25zIjpdWUsInJvbGVzIMTCJdLlqEnH7GrECJjbbXX0.sWOLKFxCcXQkUcPvTjYceXBp39hDF3-Snc"
}

📘

Info

For security reasons, access tokens are valid for 5 minutes. If your token expires, you can create a new one with a 24-hour validity by using the Refresh the token endpoint.


4. Consult the required code

  • Country:
    To get the Country in ISO format, check the list that is available in the documentation's Countries, choose the country of interest and navigate to the Country Overview section.
  • Currency:
    To get the Currency Code, check the list that is available in the documentation's Countries, choose the country of interest and navigate to the Country Overview section.

Create an Internal Domestic Transfer

To create a internal domestic transfer, send a POST request to the Internal Transfers endpoint:

  • In transactionType set "InternalDomesticTransfer".

Request example

curl --request POST \
     --url https://api.stage.localpayment.com/api/internal-transfer \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "externalId": "67ef552a-a12b-4f70-b00d-002160859805",
  "country": "ARG",
  "currency": "ARS",
  "amount": 100,
  "transactionType": "InternalDomesticTransfer",
  "client": {
    "type": "Client",
    "from": {
      "accountNumber": "032.032.00000078"
    },
    "to": {
      "accountNumber": "032.032.00000079"
    }
  }
}
'

Successful response

{
  "transactionType": "InternalDomesticTransfer",
  "externalId": "43ce6200-f391-4cdd-a6eb-aacb7a4e63fd",
  "internalId": "11b1c11e-a111-1be1-ac11-ec1111111fc1",
  "country": "ARG",
  "currency": "ARS",
  "clientCode": "1111",
  "creationDate": "2024-03-21T19:28:10.630+00:00",
  "errors": [],
  "status": {
    "code": "111",
    "description": "COMPLETED",
    "detail": "Completed"
  },
  "amount": 10,
  "client": {
    "type": "Client",
    "from": {
      "clientCode": "1111",
      "date": null,
      "accountNumber": "111.111.11111111",
      "externalId": null
    },
    "to": {
      "clientCode": null,
      "date": null,
      "accountNumber": "111.111.11111111",
      "externalId": null,
      "amount": 8.7
    }
  },
  "fees": {
    "description": "Fee",
    "currency": "ARS",
    "fxSource": 204.516174,
    "fxQuote": 1,
    "amount": 1.2,
    "account": "111.111.11111111"
  },
  "localTaxes": [
    {
      "code": "1111",
      "percentage": 1,
      "description": "AGP",
      "currency": "ARS",
      "fxSource": 204.516174,
      "fxQuote": 0,
      "amount": 0.1,
      "account": "111.111.11111111"
    }
  ],
  "confirmed": {
    "currency": "ARS",
    "fxQuote": 1,
    "amount": 10
  },
  "payment": {
    "fxQuote": 0,
    "creditedAmount": 0,
    "amount": 10,
    "currency": "ARS"
  },
  "withHoldings": []
}

Internal Foreign Transfer

¿What is an internal foreign transfer?

An internal foreign transfer allows you to move funds across your Localpayment accounts that are in different countries while keeping the same currency.


Prerequisites

Before requesting an internal foreign transfer, you must have completed the following steps:


1. Environment access

You will need to conclude your onboarding process and your Stage login credentials or your Production credentials (if you are already certified) in order to create a payment via API or Panel.

⚠️

Important

To produce an internal foreign transfer, make sure you have the appropriate user permissions .


2. Whitelist your IP

⚠️

Important

If you are going to create an internal foreign transfer via the Panel skip this step.

Before using the APIs, you must whitelist your IP address in the Panel to ensure secure access to LocalPayment services.


3. Generate an Authentication Token

⚠️

Important

If you are going to create an internal foreign transfer via the Panel skip this step.

To interact with LocalPayment's APIs, you need an authentication token.

Send a POST request to the Generate an Acces Token endpoint and include your API credentials in the request; to generate an authentication token.

Request example

curl --request POST \
     --url https://api.stage.localpayment.com/api/token/ \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "username": "[email protected]",
  "password": "1234"
}
'

Successful response

{
  "refresh": "eyJ0eXAiOiJKV1QiLCJhbGccM5kYO7o4iOiJIU18jaiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTczNTMxOTkyOSwianRpIjoiZWUxMDE3MTUwY2JhNGM1NTg0MjYyZmRkZTdiOThiNGQiLCJ1c2VyX2lkIjoxMDAwLCJzdXBlcnVzZXIiOnRydWUsImlzX3N0YWZmIjp0cnVlLCJybaCIsImV4cCI62xlcyI6WyJBTEwiXSwiY291bnRyaWVzIjpbIkFMTCJdLCJjb21wYW55IjoiQUxMIiwiY2xpZW50X2NvZGUiOiJBNzaW9uTEwiLCJwZXJtaXcyI6W119.6siymomkQ72yMvHGU9sMCO4h-cxpNgQXor",
  "access": "eyJ0eXAiOiJKV1QiLCJhJIUzI1NiJ9.eyJ0b2tlbl90eXBlIbGciOijoiYWNjZXNzIiwiZXhwIjoxNzM1MjMzODI5LCJqdGkiOiJiMDRmNzQ3YWEjOCIsIn4Mjg0YjM0YmMwN2Y4ZjVkOWM0NWFVzZXJfaWQiOjEwMDAsInN1cGVydXNlciI6dHJ1ZSwiaXNfc3RhZmYiOnRy3VudHJpZXMiOljpbIkFsiQUxMIl0sImNvbXBhbnkiOiJBTEwiLCJjbGllbnRfY29kZSI6IkFMTCIsInBlcm1pc3Npb25zIjpdWUsInJvbGVzIMTCJdLlqEnH7GrECJjbbXX0.sWOLKFxCcXQkUcPvTjYceXBp39hDF3-Snc"
}

📘

Info

For security reasons, access tokens are valid for 5 minutes. If your token expires, you can create a new one with a 24-hour validity by using the Refresh the token endpoint.


4. Consult the required code

  • Country:
    To get the Country in ISO format, check the list that is available in the documentation's Countries, choose the country of interest and navigate to the Country Overview section.
  • Currency:
    To get the Currency Code, check the list that is available in the documentation's Countries, choose the country of interest and navigate to the Country Overview section.

Create an Internal Foreign Transfer

To create an internal foreign transfer, send a POST request to the Internal Transfers endpoint:

  • In transactionType set "InternalForeignTransfer".

Request example

curl --request POST \
     --url https://api.stage.localpayment.com/api/internal-transfer \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "externalId": "33213405-3836-4a45-b0aa-d318527f6305",
  "country": "ARG",
  "currency": "USD",
  "amount": 100,
  "transactionType": "InternalForeignTransfer",
  "client": {
    "type": "Client",
    "from": {
      "accountNumber": "032.840.00000005"
    },
    "to": {
      "accountNumber": "068.840.00000001"
    }
  }
}
'

Successful response

{
  "transactionType": "InternalForeignTransfer",
  "externalId": "33213405-3836-4a45-b0aa-d318527f6305",
  "internalId": "a70614fe-b76c-4f6c-9a5a-7144f2f7ea1f",
  "country": "ARG",
  "currency": "USD",
  "clientCode": "0001",
  "creationDate": "2024-03-23T00:38:30.828+00:00",
  "errors": [],
  "status": {
    "code": "200",
    "description": "COMPLETED",
    "detail": "INTERNAL TRANSFER"
  },
  "amount": 100,
  "client": {
    "type": "Client",
    "from": {
      "accountNumber": "032.840.00000005"
    },
    "to": {
      "accountNumber": "068.840.00000001",
      "amount": 95.8
    }
  },
  "fees": {
    "description": "Fee",
    "currency": "USD",
    "amount": 3,
    "account": "032.840.00000005"
  },
  "localTaxes": [
    {
      "code": "0001",
      "percentage": 1.2,
      "description": "IDC",
      "currency": "USD",
      "amount": 1.2,
      "account": "032.840.00000005"
    }
  ],
  "withHoldings": []
}