Demo guide

Scenarios you can run in a minute each.

Each card says what to do in the shop and where the story continues in the Babel backoffice (test mode, Kfold Demoshop merchant). “Load in checkout” fills the cart, market and demo controls for you.

Backoffice links open the Kfold Demoshop workspace, where the rule sets, velocity metrics and provider accounts live. Your Babel login must be a member of it; otherwise the portal stays on Nexora Ventures and those lists look empty. To add someone: switch to Kfold Demoshop (top left), then Admin → Users → Add User, role Customer Admin, test mode.

Markets

🇩🇪 Germany · EUR

Cards and Google Pay on the primary acquirer, with automatic failover to the backup.

🇸🇪 Sweden · SEK

The Sweden checkout variant puts Swish first (simulated Swish and BankID screens).

🇳🇴 Norway · NOK

The Norway checkout variant puts Vipps first (simulated Vipps app).

🇬🇧 United Kingdom · GBP

GBP card payments settle in EUR at the acquirer (FX conversion rule, 1.5% markup).

🇦🇪 United Arab Emirates · USD

USD payments are routed straight to the global (backup) acquirer by a routing rule.

Checkout experience

Approved card payment

The baseline: the shop mints a Babel session server-side and the cashier takes the card in PCI-scoped fields.

  1. Checkout embedded in the page
  2. Pay with 4242 4242 4242 4242, any future expiry and CVC
  3. Tick “Save card” to set up the payout scenario later

Expect: Approved. The order appears in the account history with Babel’s transaction id.

3-D Secure challenge

Strong customer authentication runs inside the cashier. The outcome depends on what the shopper does.

  1. Hosted page mode (preset): pay with 4000 0000 0000 3220
  2. Continue to the secure authentication, then click Approve (or Decline / Cancel for the other outcomes)
  3. Embedded mode opens the challenge in a popup window instead

Expect: Approve → approved. Decline → declined (3ds_auth_failure). Cancel → cancelled (user_aborted_trx).

Issuer declines and recovery

A decline does not end the session: the cashier offers the shopper a retry, and Babel harmonises every provider’s response codes into one stable set.

  1. Pay with 4000 0000 0000 9995 (insufficient funds)
  2. The cashier shows “Payment not completed”: click Try again and pay with 4242 4242 4242 4242
  3. Or click Cancel payment to return to the shop

Expect: Retry → approved in the same session and order. Cancel → the shop shows the cancellation and keeps the cart. The backoffice shows the declined attempt either way.

Sweden: Swish first

One integration, local methods per market: the published design shows Swedish shoppers Swish first.

  1. Market Sweden (SEK)
  2. Continue to payment, pick Swish
  3. In the simulated Swish app, approve (Betala) and sign with BankID

Expect: Approved after the simulated BankID signature. Swish shows the “Sweden · Swish first” variant at work.

Norway: Vipps first

Same shop code, different market: the Norway variant leads with Vipps.

  1. Market Norway (NOK)
  2. Pick Vipps, enter any Norwegian mobile number on the Vipps page
  3. Approve (Betal) in the simulated Vipps app

Expect: Approved. Avbryt in the app shows a shopper cancellation instead.

Google Pay express button

Express wallets sit above the method list. Google’s test environment issues a dummy token, so nothing is charged.

  1. Use Chrome signed in to a Google account
  2. Click the Google Pay button at the top of the cashier
  3. Pick any card in the Google Pay test sheet

Expect: Approved via the google-pay option on the primary acquirer.

Deep link into one method

The shop can pin a session to one method (for a “Pay with Swish” button on the product page, say).

  1. Demo controls → Pin payment method: Swish
  2. Continue to payment

Expect: The cashier skips the method list and opens straight into Swish.

Routing and acquirers

Acquirer error cascade

A technical error at the primary acquirer triggers the cascade to the backup acquirer.

  1. Pay with 4000 0000 0000 0119 (acquirer malfunction)

Expect: Babel retries on the backup acquirer. The simulator fails this card everywhere, so the attempt trail shows both tries.

Route by currency

A routing rule sends USD volume straight to the global acquirer.

  1. Market United Arab Emirates (USD)
  2. Pay with 4242 4242 4242 4242

Expect: Approved on the backup (global) acquirer, not the primary.

FX conversion and fees

UK card payments are charged in GBP but settle in EUR at the acquirer, with a markup. Every payment carries its processing fee.

  1. Market United Kingdom (GBP)
  2. Pay with 4242 4242 4242 4242

Expect: The transaction shows a GBP amount, an EUR transaction amount and the fee.

Risk and limits

Block list

Fraud rules run before any acquirer is called.

  1. Email: eve@blocked.test
  2. Pay with 4242 4242 4242 4242

Expect: Declined with email_block. No acquirer was contacted.

Sanctioned country

Country rules stop payments from markets the merchant cannot serve.

  1. Billing country: North Korea (sanctions demo)
  2. Pay with 4242 4242 4242 4242

Expect: Declined with risk_block.

Velocity limit

A velocity metric counts payments per shopper; a fraud rule blocks the fifth within ten minutes (sliding window).

  1. Load this scenario and pay with 4242 4242 4242 4242, leaving “Save card” unticked
  2. Repeat “Load in checkout” and pay, four times in total
  3. Pay a fifth time

Expect: Payments one to four are approved; the fifth is declined with exceeds_frequency before any acquirer is called.

High-value order flagged

Not every rule blocks: a flag lets the payment through and marks it for review.

  1. Cart: nine Northstar Desk Lamps (over 1,000)
  2. Pay with 4242 4242 4242 4242

Expect: Approved and flagged for review in the backoffice.

After the sale

Refund from the shop

The shop refunds through the same API; the refund lands in Babel next to the original payment.

  1. Account → order history → Refund on an approved order

Expect: Refunded. The refund is its own transaction linked to the payment.

Payouts with approval rules

Withdrawals use the same cashier, to a card the shopper saved. Approval rules decide who signs off.

  1. Account: sign in with the sample shopper
  2. Run “High-value order flagged” and tick “Save card” in the cashier: the shopper has now paid in over 1,000
  3. Account → Payouts: 20 (approved automatically), 120 (AI agent pre-screen), 300 (manual review), 600 (four-eyes), 5,000 (denied: more than the shopper paid in)

Expect: Small payouts go straight through; the rest wait in Approvals until someone decides, with the AI agent’s recommendation alongside.

Merchant control

Change the cashier without a release

The shop never changes: the merchant edits, previews and publishes the cashier in the Checkout builder.

  1. Checkout → Designs → “Kfold Demoshop cashier”: change a colour or the layout, or ask Checkout Genie
  2. Preview on mobile, publish, then reload the shop checkout
  3. Roll back to the previous version in one click

Expect: The live cashier changes immediately. Versions, the A/B layout test and the conversion funnel are all in the builder.

Operations: AI analyst, dashboards, monitors, reconciliation

After a few scenarios there is data to explore.

  1. AI Analyst: “Show approval rate by payment option today” or “Why were payments declined?”
  2. Dashboards: create one and let the genie build widgets
  3. Monitoring, Reconciliation and the Audit log

Expect: Answers and charts built from the demo’s own transactions.

Test cards

Bistromathic Lab, Babel's payment simulator. Any future expiry and any CVC. Cards outside this list are decided by the amount, and every shop price ends in .00, which approves.

Card numberBrandOutcomeStatus code
4242 4242 4242 4242VisaApproved, no 3DSapproved
5555 5555 5555 4444MastercardApproved, no 3DSapproved
3782 822463 10005AmexApproved, no 3DSapproved
4000 0000 0000 3220Visa3DS challenge: Approve, Decline or Cancel decidesapproved · 3ds_auth_failure · user_aborted_trx
4000 0000 0000 0341Visa3DS challenge that always fails3ds_auth_failure
4000 0000 0000 9995VisaDeclined: insufficient fundsinsufficient_funds
4000 0000 0000 0002VisaDeclined: do not honordo_not_honor
4000 0000 0000 0069VisaDeclined: expired cardexpired_card
4000 0000 0000 0127VisaDeclined: invalid CVCinvalid_cvv
4100 0000 0000 0019VisaDeclined: suspected fraudsuspected_fraud
4000 0000 0000 0119VisaAcquirer malfunction: Babel fails over to the backup acquirerpsp_malfunction
4000 0000 0000 0051VisaAcquirer timeout: Babel fails over to the backup acquirerpsp_timeout

Live integration log

Everything the shop server sent to or received from Babel since it started: sessions, status reads, refunds and signature-verified webhooks.