From order to refund
Orders
Creation, transactions, processing, capture, cancellation and refunds.
- Create
- Process
- Capture
- Refund
YOUR SANDBOX. YOUR RULES.
Your local lab for payment integrations. Emulate selected Mercado Pago, Stripe and PayPal flows with an API, checkout and control over every outcome.
Independent of your provider’s sandbox.
POST → 200Illustrative view · no real money
FAMILIAR CONTRACTS
Test your integration flow using each provider’s own vocabulary.
From order to refund
Creation, transactions, processing, capture, cancellation and refunds.
Capture on your terms
Create/confirm, manual capture and refunds, with Stripe-shaped errors.
Approval flow included
Local OAuth, approval, authorization, capture, void and refunds.
Selected flows, not complete catalogues. Read the fidelity reports for exact coverage and limitations.
HOW IT WORKS
Register an application, configure its local credentials and point your integration at the emulator. Every request follows an observable path.
Explore the architectureHTTP → Contract → OutcomeOne shared path. Each provider’s contract at the edges.
DETERMINISTIC SCENARIOS
An approved payment, a decline or a pending action. Choose the outcome to reproduce the case you need to debug, over and over.
Same scenario. Same outcome.
Assign the scenario to your application or use X-Emulator-Scenario per request.
Design scenariospayment.createWebhook enabledstripe/payment-approved.json
{
"provider": "stripe",
"version": 1,
"when": {
"operation": "payment.create"
},
"then": {
"outcome": "captured",
"webhook": {
"enabled": true,
"delayMs": 50
}
}
}capturedInteractive example · no requests are sent
trace_demoOne request. Its complete history.
request.receivedcontract.validatedscenario.matchedresponse.sentWorker · signature · retries · history
WEBHOOKS + TRACES
Inspect which contract was validated and which scenario matched. Review webhook deliveries and retries, and connect the request to your logs through its correlation ID.
FAKE BANK. REALISTIC ACCOUNTING.
Payments are more than magic states. The fake bank records double-entry postings to track captures, fees, reserves, settlements and refunds.
Balances derived from postings. Amounts in minor units. No real money.
Meet the fake bank| Account | Debit | Credit |
|---|---|---|
| System cash | 100.00 USD | — |
| Funds in transit | — | 100.00 USD |
Debits = credits
ONE LAB, THREE SURFACES
Three separate applications, connected through the API.
POST /v1/payment_intents{
"amount": 10000,
"currency": "usd",
"confirm": true
}Local · APIProvider contracts, scenarios and payment operations, powered by NestJS.
Contracts and APIdemo-storeStripepayment_demoCapturedApplications, local credentials, payments, ledger, webhooks and traces.
Open the console•••• 4242Test the buying experience with each provider’s visual identity and flow.
Explore the checkoutFROM REPOSITORY TO FIRST PAYMENT
Clone the repository and run the installer. It checks Node, prepares the environment, installs, builds, migrates and creates your administrator.
Installation guidenpm run setupWhat the installer prepares
Node ≥ 22.17 · Docker Compose or local PostgreSQL
Docker leaves the stack running. In local mode, start the processes using the guide.
DOCUMENTATION WITHOUT GUESSWORK
Spanish and English guides, from your first run to the limits of each contract.
Browse all documentationFREQUENTLY ASKED
Short answers, each with the document behind it.
Browse all documentationA local payment gateway emulator: an API, a console, a checkout and a fake bank with double-entry accounting. It runs entirely on your machine.
Project overviewNo. You register your application in the emulator and it issues the local credentials you sign each request with. No real card or account is involved.
Getting startedNo, and it is not an official product of those providers. It emulates selected flows in their vocabulary; the fidelity reports state what is covered and what is not.
Features and limitsMercado Pago with Orders; Stripe with PaymentIntents and refunds; PayPal with Orders v2 and Payments v2. Each fidelity report details the scope per provider.
Stripe reportYes. The emulator emits an event for each operation, records its deliveries and keeps the trace of the request that produced them.
Webhooks and tracesYes. Deterministic scenarios bind a condition to an outcome, so the same case reproduces identically every time you need it.
Deterministic scenariosYOUR NEXT PAYMENT IS A TEST
Your code, your scenarios and an environment to understand every outcome.