Pay-ins
Let customers pay the way their market already does.
Offer the supported local ways to pay at checkout, receive confirmation through transaction updates, and connect incoming funds to the rest of your operation.
- One endpoint: POST /api/payin/
- Local currency, one balance
- Signed webhooks for every status
- Countries with pay-ins
- 9
- Countries with virtual accounts
- 7
- Countries with cards: Argentina, Colombia, Mexico and Peru
- 4
- Real-time status on every payment
- Webhooks
The challenge
Cross-border collection leaves money on the table
International cards are only part of the picture. Across the region people pay by bank transfer and QR — and every country does it differently.
Collecting without a local partner
- Cards onlyMany buyers prefer bank transfers or QR, and drop off without them.
- A new integration per countryEach market has its own rails, documents, limits and rules.
- Manual reconciliationMatching payments from several providers by hand is slow and error-prone.
Collecting with Localpayment
- The methods people already usePix, PSE, Bre-B, CVU, CLABE, QR and local card brands in one integration.
- One schema for every countryThe same fields everywhere: country, currency, amount, paymentMethod, externalId.
- One balance, one report, one webhook formatEvery collection credited to your account and reconciled in the same reports.
Methods
Supported local methods, one endpoint.
Pick the methods each market prefers. The request shape never changes — only the payment method code, country and currency.
Cards
- ar
- co
- mx
- pe
Visa and Mastercard in Argentina, Colombia, Mexico and Peru, plus American Express, Naranja and Cabal in Argentina and American Express and Diners Club in Colombia.
Cards —Virtual accounts
- ar
- br
- cl
- co
- cr
- mx
- pe
A dedicated CVU, Pix key, CLABE, CCI, IBAN, Bre-B key or Chilean account number per customer, invoice or order.
Virtual accounts —Local payment methods (APMs)
- ar
- bo
- br
- cl
- co
- gt
- pe
Pix in Brazil, PSE in Colombia, Debin and QR in Argentina, ETPAY in Chile, QR in Bolivia and Peru, and QR Fri and Wallet Fri in Guatemala.
Local payment methods (APMs) —Subscriptions
- co
- mx
- pe
Scheduled plans or on-demand charges with configurable retries.
Subscriptions —
Money flow
From checkout to your balance
One request creates the payment; the local rail confirms it; a signed webhook tells your platform.
- 1
CustomerYour platform:
Chooses a local method
Pix, SPEI, PSE, Bre-B, cards or any method available in the country.
- 2
Your platformLocalpayment:
POST /api/payin/
Amount, currency, country and payer data in one request.
- 3
LocalpaymentCustomer:
Payment instructions
QR code, key, reference or redirect, depending on the method.
- 4
CustomerLocal rail / bank:
Pays in the bank app
The payer authorizes with their own bank or wallet.
- 5
Local rail / bankLocalpayment:
Rail confirms
Real-time rails confirm in seconds; others follow their own cut-offs.
- 6
LocalpaymentYour platform:
Signed webhook
Your system releases the order and the balance is credited.
Illustrative flow. Confirmation time and cut-offs depend on the method and country.
How it works
From request to balance in four steps
- 01
Request
POST /api/payin/ with the country (ISO-3), currency, amount, paymentMethod and your unique externalId.
- 02
Customer pays
Cards authorize in real time. Virtual accounts and local payment methods confirm asynchronously.
- 03
Webhook
An HMAC-SHA256 signed webhook carries the result, your externalId and our internalId.
- 04
Balance credited
The collection is credited to your Localpayment account in your settlement currency, usually USD.
Lifecycle
Manage the full payment lifecycle
Everything that happens after the payment runs on the same platform, through the API or the Business Portal.
- Refunds for card, virtual-account and APM payments
- Chargeback management with evidence upload through the API
- Cancel pending APM payments before the payer approves
- Proof-of-payment downloads for refunds
- Dynamic checkouts with the Get Available Payment Methods endpoint
- FX on payment, with the rate locked by a quote token
- 09:41:02.11409:41:02PayIn100 INPROGRESS20084 ms
- 09:41:05.90209:41:05PayIn200 COMPLETED20091 ms
- 09:42:18.33009:42:18PayOut100 INPROGRESS20077 ms
- 09:42:40.01809:42:40PayOut200 COMPLETED20088 ms
- 09:43:00.55109:43:00VirtualAccount200 COMPLETED20080 ms
POST https://example-merchant.com/webhooks/localpayment
x-Signature: HMAC-SHA256 3f9a1c0e…b47e2b
{ "transactionType": "PayIn", "transactionFlow": "DIRECT",
"data": { "externalId": "order_8F2K-1043",
"status": { "code": "200", "description": "COMPLETED" } } }For developers
One endpoint, country-specific fields.
Authenticate with POST /api/token/, then call the same Create Payin endpoint for any country, adding the fields that country requires. This Pix example returns a QR code and confirms by webhook.
- Bearer tokens: 5-minute access token, 24-hour refresh token
- Your externalId on every request; duplicates return HTTP 409
- Stage mirrors production with no real money
# 1) Get an access token (Stage). Keep credentials in a secrets manager.
curl -X POST https://api.stage.localpayment.com/api/token/ \
-H "Content-Type: application/json" \
-d '{ "username": "<api-user>", "password": "<from-your-secrets-manager>" }'
# 2) Create a Pix payin (fictitious values)
curl -X POST https://api.stage.localpayment.com/api/payin/ \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"paymentMethod": { "type": "BankTransfer", "code": "1314", "flow": "DIRECT" },
"externalId": "7c1e2f7a-0000-4000-8000-000000000001",
"country": "BRA",
"currency": "USD",
"amount": 100,
"accountNumber": "<your-account-number>",
"conceptCode": "0003",
"merchant": { "type": "COMPANY", "name": "Loja Exemplo Ltda" },
"payer": {
"type": "INDIVIDUAL",
"name": "Maria",
"lastname": "Silva",
"document": { "type": "CPF", "id": "000.000.000-00" }
}
}'Coverage
Pay-in methods by country
Argentina
- Virtual accounts
- CVU
- Cards
- Yes
- Local methods
- QR · Debin
Bolivia
- Virtual accounts
- —
- Cards
- —
- Local methods
- QR
Brazil
- Virtual accounts
- Virtual account (Pix or TED)
- Cards
- —
- Local methods
- Pix
Chile
- Virtual accounts
- Bank account (TEF)
- Cards
- —
- Local methods
- ETPAY
Colombia
- Virtual accounts
- Bre-B key
- Cards
- Yes
- Local methods
- PSE
Costa Rica
- Virtual accounts
- IBAN (SINPE)
- Cards
- —
- Local methods
- —
Guatemala
- Virtual accounts
- —
- Cards
- —
- Local methods
- QR Fri · Wallet Fri
Mexico
- Virtual accounts
- CLABE
- Cards
- Yes
- Local methods
- —
Peru
- Virtual accounts
- CCI
- Cards
- Yes
- Local methods
- QR
Source: country guides at docs.localpayment.com. Availability is confirmed for each merchant during onboarding.
Use cases
Collection built for each industry
E-commerce & marketplaces
Cards, Pix, PSE and SPEI at checkout, with refunds from the same API.
E-commerce & marketplaces —Digital goods & streaming
Instant rails confirm in seconds so content unlocks right away.
Digital goods & streaming —SaaS
Collect subscriptions locally and settle in your hard currency.
SaaS —Travel
High tickets by bank transfer with real-time confirmation.
Travel —
Frequently asked questions
What is my settlement currency?
Usually USD. Local-currency collections are credited to your Localpayment account in your settlement currency. You can also convert local balances to other hard currencies, such as EUR or GBP, within local market hours.
Are payments confirmed in real time?
Card authorizations are real time. Real-time rails such as Pix, SPEI, COELSA, TEF, CCE and Bre-B confirm in seconds, 24/7. Other methods confirm asynchronously, and every final status arrives by webhook.
How do I know a payment completed?
You receive a webhook signed with HMAC-SHA256 in the X-Signature header. A status.code of 200 means COMPLETED. You can also query GET /api/transactions/{externalId}/status.
Can I refund a payment?
Yes. Card, virtual-account and APM payments can be refunded through the API or the Business Portal.
Do I need a separate integration per country?
No. The request shape is the same everywhere; new markets are enabled by configuration, without reintegrating.
How do I start testing?
Stage credentials are issued at the start of the partnership. Stage mirrors production with no real money, so you can test every flow before going live.
Which payment methods can I offer in each country?
Cards in Argentina, Colombia, Mexico and Peru, and virtual accounts and local payment methods (APMs) where documented per country. The payment methods directory lists every method, code and speed; your account team enables them by configuration.
Can I collect in US dollars?
In some markets, yes — for example USD virtual accounts in Costa Rica, Peru and Mexico (via SPID). In most countries the payer pays in local currency and the collection is credited to your account in your settlement currency.
Also on the same API
Start collecting locally
Get Stage credentials at the start of the partnership, go live in weeks and open new markets by configuration.

One endpoint: POST /api/payin/