Evaluating a stablecoin API in 30 days means giving each week one job: shortlist providers in writing in week 1, test sandboxes against failure cases in week 2, run compliance and commercial review in week 3, and pilot small live payouts on one corridor in week 4. Decide on day 30 from measured results.
Every provider claims quotes and global rails. The differences show when a quote expires, a payout is rejected or finance closes the month, and this plan surfaces them on a fixed clock with the pass rule written first. It is a frame, not a promise: how long KYB (know your business, the verification of a company and its owners) and a first live payout take depends on the provider and your paperwork. To decide what kind of provider you need first, read what a stablecoin API is and how to choose an infrastructure provider.
Five owners, five sign-offs
Engineering alone decides what compliance or finance must undo. Name five owners on day one: engineering signs off on the week 2 test table, compliance on the responsibility split in writing, finance on the cost model and pilot reconciliation, operations on the support runbook, and product on the final decision.
Week 1: write the requirements, then cut the list to three
Put the requirements on one page: corridors, rails, monthly volume, typical payout size, who holds funds at each step and who verifies your end users. Drop every provider that does not do that job, since a card issuer, a consumer on-ramp and a payout API are different products. Send the rest one fixed list of questions; the RFP template has the long version. Ask for sandbox access, an itemized sample quote for your top corridor at your typical amount, the standard contract and the licensing summary on day one. Start each shortlisted provider's KYB or onboarding paperwork that same day and ask in writing for production access and its lead time, since both run until week 3.
Pass rule: two or three providers with written answers, sandbox access, a sample quote and a written lead time for production access. The red flag is a sales call required before you can see a sandbox; a call for production access is normal, so record its lead time. Other early disqualifiers are in stablecoin payments provider red flags.
On Lumx, the sandbox is open and self-serve, with every currency enabled, and production access is a conversation with the team, so ask for it on day one. The pricing model is one sentence: monthly platform fee plus usage-based per-transaction fees, transparent FX on locked quotes, no pre-funding; no published plans. Check requirements against the coverage page.
Which failure tests belong in week 2?
All of them, before any happy path counts as done. Every sandbox can complete a payout; the test is whether your system ends each unhappy case in the right state without hand fixes.
Fourteen sandbox tests, each with a pass rule you can count.
# | Test | How to provoke it | Pass if |
1 | Happy path, two rails | One payout on an instant local rail and one on SWIFT in USD | Statuses in order, amounts match to the cent |
2 | Verification rejected | The provider's documented test input | Your app shows a final state and does not retry |
3 | Verification asks for documents | The documented RFI test input | Your app asks for more information and a resubmission returns to review |
4 | Expired quote | Request a short quote, wait, then submit | A named error, no payment, a new quote |
5 | Reused quote | Submit one locked quote on two payouts | The second is refused |
6 | Duplicate request | Same idempotency key and body, twice | One payout, first response replayed |
7 | Key conflict | Same key, different body | A conflict error, no second payout |
8 | Retry after a crash | Kill your process mid-request, retry with the stored key | One payout; a retry during processing gets an in-flight conflict, not a second payout |
9 | Duplicate webhook | Replay an event | Your handler skips it |
10 | Forged or stale webhook | Send a bad signature and an old timestamp | Both rejected |
11 | Balance too low | Pay out more than the wallet holds | An error before anything moves |
12 | Over a limit | Exceed a per-transaction, daily or monthly limit | An error naming the limit, with usage readable beforehand |
13 | Bad destination details | A wrong account number or key | Rejected at creation, not days later |
14 | Burst of requests | Send a burst from your client | Client backs off, retries, duplicates nothing |
Count failures, not passes: a case you cannot provoke is a branch you would write blind, so log it. The steps are in how to integrate a stablecoin API, and the causes of a bounced payout in why stablecoin payouts get rejected.
On Lumx, the sandbox runs on testnet against mock banking partners, so no real money moves. The last digit of a customer's taxId drives verification: a 2 returns RFI (request for information, a compliance hold that asks for a document), a 3 returns FINAL_REJECTION, and most others return APPROVED. The docs name the rest: a repeated Idempotency-Key with the same body returns the cached response, and another body returns a 409. A locked rate raises EXCHANGE_RATE_EXPIRED or EXCHANGE_RATE_ALREADY_USED, a payout above the balance returns INSUFFICIENT_BALANCE, and one above a limit returns TRANSACTION_LIMIT_EXCEEDED. Match on the code, never the message. A retry during processing returns 409 IDEMPOTENCY_KEY_IN_FLIGHT, failed responses are cached, and a key expires after 24 hours, so run test 8 inside that window. Webhooks are signed with HMAC-SHA256, and the docs sample rejects messages older than 5 minutes. Rate limiting returns 429 TOO_MANY_REQUESTS with no published limit, so back off. A destination with invalid details is rejected at creation, and a payout needs an approved destination: verification includes sanctions screening and the banking partners' name check (VoP or CoP), which counts toward approval without a separate verdict, and a SELF destination is checked on the name too. A regular on-ramp in the sandbox follows its full flow, so the deposit can be simulated. The production checklist prompt audits what changes afterward.
Week 3: compliance and commercial review
Week 3 is the review and sign-off of the paperwork you started on day one: who is authorized to do what, and what the contract says when something goes wrong. Check public registers instead of trusting a slide, such as the BCB list for Brazil and FinCEN's MSB registration for the US, and write down who runs KYB, KYC (know your customer, the verification of an individual), sanctions screening and monitoring for your flow; the KYB explainer lists what providers ask of a company, and the onboarding flow guide shows it inside a product.
Collect seven things: the dated authorization status, the split of KYB, KYC, screening and monitoring, how customer funds are held and segregated, the monthly minimum with any ramp-up, the limits per customer and how to raise them, the export and termination terms, and the latest security report with the incident process.
Pass rule: the responsibility split is signed, and finance has written pricing for the pilot corridor.
On Lumx, KYC runs through Sumsub, every transaction is screened before it executes, Chainalysis KYT monitors blockchain activity for every type of wallet, and fiat uses Lumx's own systems plus banking-partner oversight. Lumx is compliant with SOC 2 and ISO 27001 (not yet certified), runs penetration tests, and publishes a service level agreement. KYB targets one business day once all documents are in, a target and not a promise. In Brazil, Lumx SPSAV Ltda filed its application for the SPSAV authorization (Sociedade Prestadora de Serviços de Ativos Virtuais, the company type that holds Brazil's virtual asset service provider authorization) and operates under the transition regime of Resolution BCB 520 of 2025, Article 88, as of November 1, 2026. Wallets are custodial, held by BitGo with a separate wallet per customer and no omnibus account. The standard contract covers returning funds on exit and an export of history and addresses. There is no setup fee, and the standard agreement has a monthly minimum that a ramp-up period waives in the first months. A customer's limits are readable with includeTransactionLimits=true, and a higher limit goes through Enhanced verification.
Week 4: pilot real payouts on one corridor
Run small real amounts on one corridor and record everything. A sandbox skips the bank leg, where a SWIFT payment picks up correspondent banks, extra days and unquoted fees, and where settlement time, support quality and reconciliation turn into numbers. Pay your own recipients first, cap each payout at an amount whose delay you could accept, add real recipients once those reconcile, and time one real support question.
I would put the rejected payout at the top of the pilot log, not the bottom. A payout to a deliberately wrong account number should be refused at creation, and how the provider says so tells you more about the next year than ten clean payouts. My recommendation is to ask every shortlisted provider for that same case in week 4, and to score the answer. I would also start compliance and contract review on day one instead of in week 3, because it is the one workstream you cannot speed up by working harder once it starts.
Log every pilot payout with the same fields for every provider: identifiers, amount sent and received, the reference rate at quote time, three timestamps, the rail reference and the status history. As an illustrative working floor, ten payouts per rail give a rough median, not a statistical result. Reconciliation of stablecoin transactions covers closing the books, and payout limits and cut-offs by rail gives timings to compare against.
Pass rule: every pilot payout is completed and reconciled, or explained.
On Lumx, an off-ramp moves through TRANSFERRING_STABLECOIN, TRADING and TRANSFERRING_FIAT to SUCCESS, with a signed webhook at each change. Every SWIFT payout carries a UETR (the unique end-to-end reference of a SWIFT payment). Pix (Brazil's instant payment system) and SPEI (Mexico's interbank transfer system) run every day with no cut-off, while SWIFT in USD has a 3:00 PM ET cut-off and settles in 1 to 5 business days. Lumx counts an off-ramp as complete once funds leave its banking partner, so get the bank's own time from the recipient. Production uses an IP allowlist, announced in August 2026 with enforcement starting September 21, 2026, so register your server IPs before the first live call.
How do you compare the all-in cost of two providers?
Compare all-in cost on one corridor, one amount and one day: value sent, minus the value that arrived at a reference rate recorded at quote time, plus per-payout fees and the monthly fee spread over your payouts, divided by the amount sent. The spread hides in the exchange rate, so a quote with no fee line can still be the expensive one.
Illustrative arithmetic, not any provider's price: USDC valued at one dollar, a reference rate of 5.00 BRL per dollar, payouts of USD 10,000.
Per payout | Provider A | Provider B, 20 payouts a month | Provider B, 4 payouts a month |
BRL delivered | 49,750 | 49,875 | 49,875 |
Spread against reference | USD 50 | USD 25 | USD 25 |
Flat fee | USD 0 | USD 5 | USD 5 |
Monthly fee of USD 200, per payout | USD 0 | USD 10 | USD 50 |
All-in cost | USD 50 (0.50%) | USD 40 (0.40%) | USD 80 (0.80%) |
Provider B beats A at 20 payouts and costs 60% more at 4, so run the model at expected volume and in your slowest month, plus the carrying cost of any pre-funded balance. Price pieces are in how stablecoin payout pricing works.
On Lumx, a quote returns the base and final amount and rate, so the spread against your reference is a subtraction. A locked rate holds for 30 seconds, 1 minute or 5 minutes, with a fee only on the longer locks. There is no pre-funding to price, because a payout debits the customer's own wallet.
Decide on day 30 with gates first, then a score
A provider that fails a gate is out, however cheap. Only survivors are scored.
Gate | Pass if |
Corridors | Your launch corridors are live in production, in the direction you need |
Compliance | Your compliance lead signed the responsibility split |
Sandbox | All 14 tests passed, or each failure is explained in writing |
Pilot | Every pilot payout reconciled to the cent |
Then score out of 100, with weights you should change.
Criterion | Weight | Measured by |
All-in cost at expected volume | 30 | The cost model |
Failure handling | 25 | Share of the 14 tests passed |
Settlement time | 15 | Median and slowest pilot payout per rail |
Compliance fit | 15 | Split and review speed |
Support | 10 | Time to a useful answer |
Developer experience | 5 | Your engineers' own rating |
Attach the pilot log to the decision.
On Lumx, each gate maps to a page you can check: coverage, identity verification and the errors catalog. The global payments page describes the surface the pilot exercises.
When a 30-day evaluation is the wrong tool
If you cannot name the flow, the currencies and the counterparties, the evaluation yields a preference, not a decision, so write the requirements page first. If your volume is small and irregular, integration may cost more than it saves for a year.
What the 30 days look like on Lumx
Lumx is stablecoin payments infrastructure for businesses that move money between Latin America and the rest of the world: one API to collect, hold, convert, and pay out in BRL, MXN, COP, USD, EUR, and GBP or in USDC and USDT, over local rails such as PIX, SPEI, PSE, Bre-B, ACH, FEDWIRE, SEPA, and Faster Payments, with SWIFT and on-behalf-of payments and collections (POBO and COBO) in USD, EUR, and GBP, plus named virtual accounts, custodial wallets, and KYB/KYC built in.
Week 1 is the docs, the coverage page and the pricing sentence, plus a sandbox key. Week 2 is the fourteen tests. Week 3 is sign-off on the paperwork started on day one. Week 4 is a live pilot on Pix or SPEI, with SWIFT USD as the slower comparison. Production access is a conversation with the Lumx team, so ask in week 1, not on day 28.
Methodology and sources
The Lumx facts come from the public docs read on November 1, 2026: Identity verification, Idempotency, Errors, Webhooks, Authentication, Exchange rates, Transactions and Payment rail cut-off times. The regulatory status follows Lumx's own statement as of November 1, 2026, citing Resolution BCB 520 of 2025, Article 88, whose official page serves its text through a script, so no claim here rests on its wording.
Verified on November 1, 2026. Operational context, not legal, tax, or investment advice.
Cover photo: Edouard TAMBA on Unsplash.
How do you evaluate a stablecoin API?
Give each week one job with a pass rule: shortlist in week 1, sandbox failure tests in week 2, compliance and commercial review in week 3, a small live pilot in week 4. Decide on day 30 with gates first, then a weighted score. On Lumx, the sandbox, the docs and the pricing model are open on day one, and production access is a conversation with the team.
Can you evaluate a stablecoin API in less than 30 days?
Yes, if compliance and contracting start on day one, because they are the slow part. On Lumx, KYB targets one business day once documents are in, and Pix and SPEI have no cut-off.
What should you test in a stablecoin API sandbox?
The unhappy paths: failed verification, an expired or reused quote, duplicates, a retry after a crash, a payout above the balance or a limit, and bad destination details. On Lumx, the taxId sentinel forces RFI or a final rejection, and the errors catalog names the other codes.
Should a stablecoin API pilot use real money?
Yes, in small amounts on one corridor, because a sandbox skips the bank leg and only real payouts show settlement time and support quality. On Lumx, production uses live banking rails.
Who should sign off on a stablecoin API choice?
Engineering the sandbox results, compliance the responsibility split, finance the cost model, operations the runbook, and product the final call. Name them on day one.





