Skip to content

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.

Money flow

From checkout to your balance

One request creates the payment; the local rail confirms it; a signed webhook tells your platform.

  1. 1

    CustomerYour platform:

    Chooses a local method

    Pix, SPEI, PSE, Bre-B, cards or any method available in the country.

  2. 2

    Your platformLocalpayment:

    POST /api/payin/

    Amount, currency, country and payer data in one request.

  3. 3

    LocalpaymentCustomer:

    Payment instructions

    QR code, key, reference or redirect, depending on the method.

  4. 4

    CustomerLocal rail / bank:

    Pays in the bank app

    The payer authorizes with their own bank or wallet.

  5. 5

    Local rail / bankLocalpayment:

    Rail confirms

    Real-time rails confirm in seconds; others follow their own cut-offs.

  6. 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

  1. 01

    Request

    POST /api/payin/ with the country (ISO-3), currency, amount, paymentMethod and your unique externalId.

  2. 02

    Customer pays

    Cards authorize in real time. Virtual accounts and local payment methods confirm asynchronously.

  3. 03

    Webhook

    An HMAC-SHA256 signed webhook carries the result, your externalId and our internalId.

  4. 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

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.

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.

Start collecting locally

Get Stage credentials at the start of the partnership, go live in weeks and open new markets by configuration.

How can we help?

Download your copy

Leave your details and get the full edition instantly.