Rail Sandbox GatewaySandbox

Dashboard

A stand-in for the Client's card, bank, MFS, and carrier billing rails, so the Multi-Rail Subscription Engine can be built and tested against something realistic now. Everything the API does shows up here as it happens.

Trigger a card charge

FR11

Fires the same two calls a real adapter makes — tokenize, then charge. Card resolves synchronously, so the outcome comes straight back.

Amount is in the smallest currency unit — 29900 is ৳299.00. Pick a test card from the list for a guaranteed outcome, or type any number for a weighted random one.

Trigger a carrier billing charge

FR11a

Two steps, deliberately. Initiating a charge bills nobody until the subscriber completes a WAP confirmation — that gap is the whole difference between this rail and card, and it is where a subscription can quietly get stuck.

  1. 1Initiate the charge
  2. 2The customer confirms

    Nothing is charged yet. Initiate above, and this step becomes available — exactly as a real subscriber would have to complete a WAP confirmation before the carrier bills them.

Live event feed

FR8

Everything happening through the API, newest first, arriving over a Supabase Realtime subscription rather than a poll.

100 eventsconnecting
  • telecomExpired, never confirmedCharge ch_1d44010c9ed74304b40528a7 — never confirmed, expired after the grace period
  • telecomExpired, never confirmedCharge ch_af88c51780a84b89bad117eb — never confirmed, expired after the grace period
  • telecomExpired, never confirmedCharge ch_b47ac54dea154e59bdd82908 — never confirmed, expired after the grace period
  • telecomExpired, never confirmedCharge ch_09ee158c5fa24f76918cbd43 — never confirmed, expired after the grace period
  • telecomExpired, never confirmedCharge ch_a68ef499a3fb4292a11a1561 — never confirmed, expired after the grace period
  • telecomExpired, never confirmedCharge ch_5ba2d6d749954af4a4181f89 — never confirmed, expired after the grace period
  • telecomExpired, never confirmedCharge ch_e555f86fb8664a2caba19532 — never confirmed, expired after the grace period
  • telecomExpired, never confirmedCharge ch_8f634ea4857f4981bf1e04bd — never confirmed, expired after the grace period
  • telecomExpired, never confirmedCharge ch_0b4cd05e2ad14850846fd106 — never confirmed, expired after the grace period
  • cardCharge succeededCharge ch_3baaca6def8348c593afc911 — SUCCESS — ৳100.00
  • cardCharge succeededCharge ch_ee1a89a9c9aa483bac792041 — SUCCESS — ৳100.00
  • cardCharge succeededCharge ch_71b065d213a14e479292b5a5 — SUCCESS — ৳100.00
  • cardCharge succeededCharge ch_409d962cee8a41678fe522d2 — SUCCESS — ৳100.00
  • cardCharge succeededCharge ch_1af13063f76749269062bf82 — SUCCESS — ৳100.00
  • cardCharge succeededCharge ch_d1348dd676ae4040a07686ac — SUCCESS — ৳100.00
  • cardCharge succeededCharge ch_c1a6275289424f449d996922 — SUCCESS — ৳100.00
  • cardCharge succeededCharge ch_af692b0082334c3292b8e288 — SUCCESS — ৳100.00
  • cardCharge succeededCharge ch_affadb2f740947739d66f9f6 — SUCCESS — ৳100.00
  • cardToken createdToken tok_977f5f766daa4c5c8a1d2d59 — visa ····4242
  • telecomAwaiting confirmationCharge ch_a68ef499a3fb4292a11a1561 — awaiting confirmation — ৳299.00 — +8801700000004
  • telecomAwaiting confirmationCharge ch_5ba2d6d749954af4a4181f89 — awaiting confirmation — ৳299.00 — +8801700000004
  • telecomAwaiting confirmationCharge ch_af88c51780a84b89bad117eb — awaiting confirmation — ৳299.00 — +8801700000004
  • telecomConfirmation ignoredCharge ch_e555f86fb8664a2caba19532 — +8801700000004 never confirms; still awaiting confirmation
  • telecomAwaiting confirmationCharge ch_e555f86fb8664a2caba19532 — awaiting confirmation — ৳299.00 — +8801700000004
  • telecomAwaiting confirmationCharge ch_1d44010c9ed74304b40528a7 — awaiting confirmation — ৳299.00 — +8801700000004
  • telecomConfirmed, retry scheduledCharge ch_43acdf17f6314bb688cfd411 — confirmed, RETRY (insufficient_balance) — ৳299.00
  • telecomAwaiting confirmationCharge ch_43acdf17f6314bb688cfd411 — awaiting confirmation — ৳299.00 — +8801700000002
  • telecomConfirmed, failedCharge ch_e271e5c65c6241cea8e3c86a — confirmed, HARD_FAIL (subscriber_barred) — ৳299.00
  • telecomAwaiting confirmationCharge ch_e271e5c65c6241cea8e3c86a — awaiting confirmation — ৳299.00 — +8801700000003
  • telecomConfirmed, succeededCharge ch_eae6d35e1dd34f589186494e — confirmed, SUCCESS — ৳299.00
  • telecomAwaiting confirmationCharge ch_eae6d35e1dd34f589186494e — awaiting confirmation — ৳299.00 — +8801700000001
  • telecomConfirmed, succeededCharge ch_c3eb7b1c67804c8db0c542a6 — confirmed, SUCCESS — ৳299.00
  • telecomAwaiting confirmationCharge ch_c3eb7b1c67804c8db0c542a6 — awaiting confirmation — ৳299.00 — +8801700000001
  • telecomAwaiting confirmationCharge ch_b47ac54dea154e59bdd82908 — awaiting confirmation — ৳299.00 — +8801700000001
  • telecomAwaiting confirmationCharge ch_8f634ea4857f4981bf1e04bd — awaiting confirmation — ৳299.00 — +8801700000001
  • telecomAwaiting confirmationCharge ch_09ee158c5fa24f76918cbd43 — awaiting confirmation — ৳299.00 — +8801700000001
  • telecomAwaiting confirmationCharge ch_0b4cd05e2ad14850846fd106 — awaiting confirmation — ৳299.00 — +8801700000001
  • cardCharge succeededCharge ch_d9ec5f7b90bf439189c16240 — SUCCESS — ৳299.00
  • cardRefund createdRefund re_6700c82b664b4138829550fe — ৳100.00 against ch_7c5520f2545d401ab9cae191
  • cardCharge succeededCharge ch_7c5520f2545d401ab9cae191 — SUCCESS — ৳500.00
  • cardCharge succeededCharge ch_afe321752f6a46e39270c81a — SUCCESS — ৳299.00
  • cardRefund createdRefund re_a2768f6173864cf9b9eb842d — ৳200.00 against ch_8d1489d817704f1daf4fff69
  • cardCharge succeededCharge ch_8d1489d817704f1daf4fff69 — SUCCESS — ৳200.00
  • cardRefund createdRefund re_aac0f32b969f43268760d878 — ৳40.00 against ch_d503162dc680431797316469
  • cardRefund createdRefund re_6488a06a910c47108d90a4b1 — ৳60.00 against ch_d503162dc680431797316469
  • cardCharge succeededCharge ch_d503162dc680431797316469 — SUCCESS — ৳100.00
  • cardCharge succeededCharge ch_00df9757319b423a9e97a603 — SUCCESS — ৳299.00
  • cardCharge succeededCharge ch_1e946a3d9e6a4178832a6236 — SUCCESS — ৳299.00
  • cardRefund createdRefund re_9eed7b6be7a648df9fc7b4f2 — ৳299.00 against ch_e2dbd8d21ade405ead9755f1
  • cardCharge succeededCharge ch_e2dbd8d21ade405ead9755f1 — SUCCESS — ৳299.00
  • cardToken createdToken tok_dd208b3309b64b27b6308129 — visa ····4242
  • cardCharge declinedCharge ch_e4a568ac73f04d51babfd4d8 — HARD_FAIL (card_declined_generic) — ৳299.00
  • cardToken createdToken tok_d782f21ff4ea41af9d9c5331 — visa ····0002
  • cardCharge timed outCharge attempt timed out — ৳299.00, no charge record created
  • cardCharge timed outCharge attempt timed out — ৳299.00, no charge record created
  • cardToken createdToken tok_eaffad9f448d46dda41e4b14 — visa ····0259
  • cardCharge declinedCharge ch_735c9b74d6b14445a9d8b917 — HARD_FAIL (card_declined_generic) — ৳299.00
  • cardToken createdToken tok_99b0158ef02445bd9265ce00 — visa ····0002
  • cardCharge declinedCharge ch_fc7fca00fc9d4bc299d90f79 — RETRY (insufficient_funds) — ৳299.00
  • cardCharge declinedCharge ch_099f6a815338477ca78df4c3 — RETRY (insufficient_funds) — ৳299.00
  • cardCharge declinedCharge ch_1589cee224fe42289f838920 — RETRY (insufficient_funds) — ৳299.00
  • cardCharge declinedCharge ch_c663134d87aa4103af95f004 — RETRY (insufficient_funds) — ৳299.00
  • cardCharge declinedCharge ch_cae60736c1564358849151a7 — RETRY (insufficient_funds) — ৳299.00
  • cardCharge declinedCharge ch_2667eb4eb1e041c59c0fbe30 — RETRY (insufficient_funds) — ৳299.00
  • cardCharge declinedCharge ch_cb341a1e8ade4547b8f2abf6 — RETRY (insufficient_funds) — ৳299.00
  • cardCharge declinedCharge ch_8261f11295074ce697ae8679 — RETRY (insufficient_funds) — ৳299.00
  • cardCharge declinedCharge ch_3d57f2496bf44f96b344ffa1 — RETRY (insufficient_funds) — ৳299.00
  • cardCharge declinedCharge ch_eb5a59d3261242e2b8befb67 — RETRY (insufficient_funds) — ৳299.00
  • cardCharge declinedCharge ch_97c784da47124dada09740ad — RETRY (insufficient_funds) — ৳299.00
  • cardToken createdToken tok_0cf603019c77411a91b9bbe7 — visa ····9995
  • cardCharge declinedCharge ch_6a79c5cf53c14ccfb98ba6d6 — RETRY (insufficient_funds) — ৳299.00
  • cardCharge declinedCharge ch_78fcda89fd994cd0af05c5d6 — RETRY (insufficient_funds) — ৳299.00
  • cardCharge declinedCharge ch_516b149cc1244f608dc58a3f — RETRY (insufficient_funds) — ৳299.00
  • cardToken createdToken tok_cb4df2dfab8f408188a6abbf — visa ····9995
  • cardCharge declinedCharge ch_35afd177ca374efbad40ad3b — RETRY (insufficient_funds) — ৳299.00
  • cardToken createdToken tok_b04d5ed7982f4f2391cd3367 — visa ····9995
  • cardCharge succeededCharge ch_a6a43dea22e64913bf5928ff — SUCCESS — ৳299.00
  • cardToken createdToken tok_97717535405c42d3b1415c83 — visa ····4242
  • cardCharge succeededCharge ch_98104d33cd0b473a8919769d — SUCCESS — ৳299.00
  • cardToken createdToken tok_89e71efb2ba64de0b29b73f4 — visa ····4242
  • cardToken createdToken tok_afbbc8d0b4aa4287a0bb694d — visa ····4242
  • cardToken createdToken tok_374bcb7acce34f7fbd8bba27 — visa ····4242
  • cardToken createdToken tok_bf71bd1499d54964b7d68d86 — visa ····4242
  • cardCharge succeededCharge ch_e527e5f50d704cc99d49405b — SUCCESS — ৳100.00
  • cardCharge succeededCharge ch_be208c97d88243c1b05f3362 — SUCCESS — ৳100.00
  • cardCharge succeededCharge ch_1178753b32724da185054a0d — SUCCESS — ৳100.00
  • cardCharge succeededCharge ch_fb89cc5ec1804c11b682dca2 — SUCCESS — ৳100.00
  • cardCharge declinedCharge ch_03a16ad06b9740c69f61498f — RETRY (insufficient_funds) — ৳299.00
  • cardToken createdToken tok_4c1134aa44e64adf84fbf279 — visa ····9995
  • cardCharge succeededCharge ch_a5c2500b3b9342a48701d516 — SUCCESS — ৳1000.00
  • cardCharge succeededCharge ch_b7af8b5c74fb4f32a1eb863b — SUCCESS — ৳299.00
  • cardToken createdToken tok_17ed9483514242f7a8b770a9 — visa ····4242
  • cardCharge succeededCharge ch_3254068eaff24600a09eadc1 — SUCCESS — ৳299.00
  • cardRefund createdRefund re_120e694f89f14046ac9c8ee5 — ৳100.00 against ch_3d51b1b03bf944019229d78c
  • cardCharge succeededCharge ch_3d51b1b03bf944019229d78c — SUCCESS — ৳500.00
  • cardCharge succeededCharge ch_b793f267e57a43bf86149047 — SUCCESS — ৳299.00
  • cardRefund createdRefund re_8b6c652e1c1e410d8cf11622 — ৳200.00 against ch_f1b9a3a3fa2048e1b9c003c5
  • cardCharge succeededCharge ch_f1b9a3a3fa2048e1b9c003c5 — SUCCESS — ৳200.00
  • cardRefund createdRefund re_556381ca6a2f4ff6bb70a463 — ৳40.00 against ch_3a499f9aca8d465fad2e35db
  • cardRefund createdRefund re_3385aa59b41946249b236696 — ৳60.00 against ch_3a499f9aca8d465fad2e35db

Charges

FR9

Every charge the gateway has recorded, across both rails. Amber means a carrier billing charge is still waiting on the subscriber; violet means its grace period ran out, which is a different end state from a decline.

ChargeRailAmountStatusOutcomeDeclineCreated
ch_3baaca6def8348c593afc911
card৳100.00succeededSUCCESS23:26:01
ch_ee1a89a9c9aa483bac792041
card৳100.00succeededSUCCESS23:26:00
ch_71b065d213a14e479292b5a5
card৳100.00succeededSUCCESS23:26:00
ch_409d962cee8a41678fe522d2
card৳100.00succeededSUCCESS23:25:58
ch_1af13063f76749269062bf82
card৳100.00succeededSUCCESS23:25:58
ch_d1348dd676ae4040a07686ac
card৳100.00succeededSUCCESS23:25:58
ch_c1a6275289424f449d996922
card৳100.00succeededSUCCESS23:25:58
ch_af692b0082334c3292b8e288
card৳100.00succeededSUCCESS23:25:58
ch_affadb2f740947739d66f9f6
card৳100.00succeededSUCCESS23:25:58
ch_a68ef499a3fb4292a11a1561
+8801700000004
telecom৳299.00expiredEXPIRED23:25:52
ch_5ba2d6d749954af4a4181f89
+8801700000004
telecom৳299.00expiredEXPIRED23:25:52
ch_af88c51780a84b89bad117eb
+8801700000004
telecom৳299.00expiredEXPIRED23:25:51
ch_e555f86fb8664a2caba19532
+8801700000004
telecom৳299.00expiredEXPIRED23:25:50
ch_1d44010c9ed74304b40528a7
+8801700000004
telecom৳299.00expiredEXPIRED23:25:49
ch_43acdf17f6314bb688cfd411
+8801700000002
telecom৳299.00pending_retryRETRYinsufficient_balance23:25:47
ch_e271e5c65c6241cea8e3c86a
+8801700000003
telecom৳299.00failedHARD_FAILsubscriber_barred23:25:45
ch_eae6d35e1dd34f589186494e
+8801700000001
telecom৳299.00succeededSUCCESS23:25:44
ch_c3eb7b1c67804c8db0c542a6
+8801700000001
telecom৳299.00succeededSUCCESS23:25:42
ch_b47ac54dea154e59bdd82908
+8801700000001
telecom৳299.00expiredEXPIRED23:25:41
ch_8f634ea4857f4981bf1e04bd
+8801700000001
telecom৳299.00expiredEXPIRED23:25:40
ch_09ee158c5fa24f76918cbd43
+8801700000001
telecom৳299.00expiredEXPIRED23:25:39
ch_0b4cd05e2ad14850846fd106
+8801700000001
telecom৳299.00expiredEXPIRED23:25:39
ch_d9ec5f7b90bf439189c16240
card৳299.00succeededSUCCESS23:25:26
ch_7c5520f2545d401ab9cae191
card৳500.00succeededSUCCESS23:25:21
ch_afe321752f6a46e39270c81a
card৳299.00succeededSUCCESS23:25:18
ch_8d1489d817704f1daf4fff69
card৳200.00succeededSUCCESS23:25:14
ch_d503162dc680431797316469
card৳100.00succeededSUCCESS23:25:09
ch_00df9757319b423a9e97a603
card৳299.00succeededSUCCESS23:25:06
ch_1e946a3d9e6a4178832a6236
card৳299.00succeededSUCCESS23:25:02
ch_e2dbd8d21ade405ead9755f1
card৳299.00succeededSUCCESS23:24:58
ch_e4a568ac73f04d51babfd4d8
card৳299.00failedHARD_FAILcard_declined_generic23:24:54
ch_735c9b74d6b14445a9d8b917
card৳299.00failedHARD_FAILcard_declined_generic23:24:50
ch_fc7fca00fc9d4bc299d90f79
card৳299.00failedRETRYinsufficient_funds23:24:48
ch_099f6a815338477ca78df4c3
card৳299.00failedRETRYinsufficient_funds23:24:47
ch_1589cee224fe42289f838920
card৳299.00failedRETRYinsufficient_funds23:24:46
ch_c663134d87aa4103af95f004
card৳299.00failedRETRYinsufficient_funds23:24:45
ch_cae60736c1564358849151a7
card৳299.00failedRETRYinsufficient_funds23:24:44
ch_2667eb4eb1e041c59c0fbe30
card৳299.00failedRETRYinsufficient_funds23:24:43
ch_cb341a1e8ade4547b8f2abf6
card৳299.00failedRETRYinsufficient_funds23:24:42
ch_8261f11295074ce697ae8679
card৳299.00failedRETRYinsufficient_funds23:24:41
ch_3d57f2496bf44f96b344ffa1
card৳299.00failedRETRYinsufficient_funds23:24:40
ch_eb5a59d3261242e2b8befb67
card৳299.00failedRETRYinsufficient_funds23:24:39
ch_97c784da47124dada09740ad
card৳299.00failedRETRYinsufficient_funds23:24:38
ch_6a79c5cf53c14ccfb98ba6d6
card৳299.00failedRETRYinsufficient_funds23:24:36
ch_78fcda89fd994cd0af05c5d6
card৳299.00failedRETRYinsufficient_funds23:24:35
ch_516b149cc1244f608dc58a3f
card৳299.00failedRETRYinsufficient_funds23:24:34
ch_35afd177ca374efbad40ad3b
card৳299.00failedRETRYinsufficient_funds23:24:32
ch_a6a43dea22e64913bf5928ff
card৳299.00succeededSUCCESS23:24:30
ch_98104d33cd0b473a8919769d
card৳299.00succeededSUCCESS23:24:29
ch_e527e5f50d704cc99d49405b
card৳100.00succeededSUCCESS23:23:30
ch_be208c97d88243c1b05f3362
card৳100.00succeededSUCCESS23:23:28
ch_1178753b32724da185054a0d
card৳100.00succeededSUCCESS23:23:27
ch_fb89cc5ec1804c11b682dca2
card৳100.00succeededSUCCESS23:23:26
ch_03a16ad06b9740c69f61498f
card৳299.00failedRETRYinsufficient_funds23:23:09
ch_a5c2500b3b9342a48701d516
card৳1000.00succeededSUCCESS23:22:57
ch_b7af8b5c74fb4f32a1eb863b
card৳299.00succeededSUCCESS23:22:54
ch_3254068eaff24600a09eadc1
card৳299.00succeededSUCCESS23:22:33
ch_3d51b1b03bf944019229d78c
card৳500.00succeededSUCCESS23:22:29
ch_b793f267e57a43bf86149047
card৳299.00succeededSUCCESS23:22:26
ch_f1b9a3a3fa2048e1b9c003c5
card৳200.00succeededSUCCESS23:22:22
ch_3a499f9aca8d465fad2e35db
card৳100.00succeededSUCCESS23:22:17
ch_723b23950a324c1db2d89b70
card৳299.00succeededSUCCESS23:22:14
ch_2d86ffb5674f4477ac6a27d9
card৳299.00succeededSUCCESS23:22:10
ch_ca2b645bbd7d452b92c10814
card৳299.00succeededSUCCESS23:22:06
ch_838282653daf44d39a33da0d
card৳299.00succeededSUCCESS22:48:27
ch_f32e11b48f0946ad95482b8a
+8801700000004
telecom৳299.00expiredEXPIRED22:47:54
ch_64a56477f6784aa88371a125
+8801700000001
telecom৳299.00succeededSUCCESS22:47:52

Test card reference

FR10

What each deterministic test card triggers. Read from the outcome engine itself, so this can never disagree with what a charge actually does.

Card numberOutcomeDecline codeUse for
4242424242424242SUCCESSHappy path
4000000000009995RETRYinsufficient_fundsSoft decline / dunning retry logic
4000000000000341RETRYdo_not_honorSoft decline / dunning retry logic
4000000000000101RETRYissuer_timeoutSoft decline / dunning retry logic
4000000000000002HARD_FAILcard_declined_genericImmediate cancellation logic
4000000000000069HARD_FAILexpired_cardImmediate cancellation logic
4000000000000127HARD_FAILincorrect_cvcImmediate cancellation logic
4000000000000119HARD_FAILprocessing_errorImmediate cancellation logic
4100000000000019HARD_FAILstolen_cardImmediate cancellation logic
4000000000000259TIMEOUTCircuit breaker / timeout handling — the route answers 504 with an empty body

Any other card number gets a weighted random outcome — roughly 80% SUCCESS, 15% RETRY, 5% HARD_FAIL. Only the numbers above are guaranteed.

Test phone number reference

FR10

The carrier billing equivalent. +8801700000004 is the one to reach for when testing what happens if a subscriber never confirms.

Phone numberConfirmationThenUse for
+8801700000001Confirms immediately when the confirm endpoint is calledSUCCESSHappy path
+8801700000002Confirms immediatelyRETRYRetry/dunning logic — soft decline, same-day retry then next-day shift
+8801700000003Confirms immediatelyHARD_FAILImmediate cancellation logic
+8801700000004Never confirms — stays pending_confirmation until the simulated grace period elapses, then expiresEXPIREDPENDING timeout / grace-period expiry logic
+8801700000005Confirms, but only after a simulated same-day retry then next-day shift on the first attemptSUCCESSRetry-then-recover logic — succeeds on the second attempt

Any other number behaves like the happy path — deliberately, so ad hoc testing never lands on the never-confirms case by accident. The grace period runs on an accelerated clock, so an expiry is watchable in seconds rather than days.