Introduction
Quick Reference
Why A55
Most payment integrations in Latin America require stitching together separate acquirers, anti-fraud providers, and 3DS services — one per country, one per payment method. A55 replaces that patchwork with a single API.
| Without A55 | With A55 |
|---|---|
| Separate contracts with acquirers in each country | One API, 29 acquirers, 7 countries |
| Build and maintain PIX, Boleto, OXXO, SPEI integrations yourself | Unified endpoint — type_charge selects the method |
| Roll your own 3DS, anti-fraud, and retry logic | Built-in 3DS, device fingerprinting, and smart routing |
| Weeks to launch a new payment method or country | Add a country or method with a single field change |
| Multiple dashboards for reconciliation | One settlement pipeline with multi-currency reporting (USD, EUR, local) |
The result:
- Faster time to market — go from sandbox to production in days, not months.
- Higher approval rates — intelligent routing and automatic retries across providers.
- Lower total cost — one integration replaces dozens of vendor contracts.
- LATAM coverage — Brazil, Mexico, Argentina, Chile, Colombia, Peru, and growing.
The partner → account → merchant → wallet hierarchy supports multi-tenant setups. You can onboard sub-merchants and isolate funds at any level.
What you can do
| Capability | Description | Learn more |
|---|---|---|
| Card payments | Credit and debit with 3DS, tokenization, installments | Credit card |
| PIX | Instant payment, QR code generation, real-time confirmation | PIX |
| Digital wallets | Apple Pay, Google Pay, e-wallets | Apple/Google Pay |
| Subscriptions | Recurring billing with automatic retries | Subscriptions |
| Multi-currency | FX quotes across 8 currencies, 56 pairs | FX rates |
| Webhooks | Real-time status notifications with HMAC signatures | Webhooks |
| Payment links | No-code checkout via URL — share on WhatsApp, email, SMS | Payment links |
| Card tokenization | Secure one-click payments with vault-stored tokens | Tokenization |
Architecture
Partners onboard accounts (entities). Each account contains one or more merchants; each merchant owns wallets; wallets fund charges and can host subscriptions.
Payment pipeline
Every payment — regardless of method — follows the same lifecycle:
Required credentials
Provision these values with our team before calling the API:
| Credential | Description | Where used |
|---|---|---|
client_id | OAuth 2.0 application ID (public) | Token requests to Cognito |
client_secret | OAuth 2.0 secret (private) | Token requests — server-side only |
entity_uuid | Unique account (entity) identifier | Wallet creation and account-scoped operations |
merchant_uuid | Merchant identifier under that account | Charges and transactions |
wallet_uuid | Wallet identifier | Balances, charges, and wallet-level operations |
Store client_secret only on your backend — secrets manager or environment variables. Never put it in front-end code, mobile apps, public repos, or client-side logs.
Test your credentials
Authenticate and list your wallets to confirm everything works.
- cURL
- Python
- JavaScript
# 1. Get an access token
TOKEN=$(curl -s -X POST \
https://smart-capital.auth.us-east-1.amazoncognito.com/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET" | jq -r '.access_token')
# 2. List wallets
curl -s -X GET \
https://core-manager.a55.tech/api/v1/wallets \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" | jq .
import requests
AUTH_URL = "https://smart-capital.auth.us-east-1.amazoncognito.com/oauth2/token"
API_BASE = "https://core-manager.a55.tech/api/v1"
token = requests.post(AUTH_URL, data={
"grant_type": "client_credentials",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
}, headers={"Content-Type": "application/x-www-form-urlencoded"}).json()["access_token"]
wallets = requests.get(f"{API_BASE}/wallets", headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
}).json()
print(wallets)
const AUTH_URL = "https://smart-capital.auth.us-east-1.amazoncognito.com/oauth2/token";
const API_BASE = "https://core-manager.a55.tech/api/v1";
const tokenResp = await fetch(AUTH_URL, {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
grant_type: "client_credentials",
client_id: "YOUR_CLIENT_ID",
client_secret: "YOUR_CLIENT_SECRET",
}),
});
const { access_token } = await tokenResp.json();
const wallets = await fetch(`${API_BASE}/wallets`, {
headers: {
Authorization: `Bearer ${access_token}`,
"Content-Type": "application/json",
},
}).then(r => r.json());
console.log(wallets);
Use your sandbox client_id / client_secret to run this right now — no real money moves. See Environment for details.
Request access
Email tech.services@a55.tech with your company name, technical contact, and use case. Our team will provision sandbox credentials and guide you through onboarding.