Skip to main content

Linque Testing

The sandbox at https://api.btsandbox.com/linque sends real codes to real United States numbers through the same provider as production. It also reserves a set of numbers that are never messaged, so an automated test needs no phone.

Reserved Numbers​

NumberBehavior
+14155551212No SMS is sent and sms_sent is false. The code is always 123456
+14155550100 to +14155550199The same, one hundred of them, so parallel runs can each take their own

The send limit applies to each reserved number: three sends per five minutes, resends included. Rotate numbers rather than wait.

CodeSubmitting it
123456Accepted. Verifies the phone and returns the test wallet. A code is single use, so submitting it again answers 410 with type: "verification_code_expired"
000000Always 410 with type: "verification_code_expired"
Any otherAlways 403 with type: "verification_code_invalid"

Test Wallet​

The sandbox discovers the same wallet for every verified shopper, whatever name and number are entered. It comes from the discovery provider's development environment, so the names and last four digits can change without notice. These are the cards it returned on November 4, 2026.

Cardnetworklast4Security codeVerifying it
Chase Credit Cardvisa7234878, three digitsReturns a card token
Apple Cardmastercard0000Three digits, none documented403 with type: "security_code_invalid". Spends an attempt
American Express Credit Cardamex0988Four digits, none documentedThe same, with a four-digit field
PayPal - Credit Cardsnull9544Three digits, none documentedThe same
Barclays Bank Credit Cardnull8382Three digits, none documentedThe same
Discount Tire Credit Cardnull5823Three digits, none documentedThe same
Wells Fargo Credit Cardvisa0332Three digits, none documentedThe same

Every card has requires_security_code: true. issuer and art_url are null on all of them and network is null on three, so the sandbox exercises a wallet without artwork and cards whose network is unknown. Size the field from security_code_length.

The provider documents a code for the Chase card only. The other cards refuse it, so they are the way to reach the invalid and exhausted outcomes. An incorrect security code spends one of the three attempts on that card, as in production, and the third answers 429 with type: "security_code_attempts_exhausted".

A card that cannot be verified is a normal checkout outcome rather than an integration failure. Running out of security-code attempts on one card also leaves the rest of the wallet available.

Discovery against real issuers happens only in production. The sandbox cannot tell you which of a real shopper's cards will be found.

Tokens​

A verified card becomes a real card token in your sandbox tenant, created by your application, holding the provider's test card. The Chase card becomes a Visa credit card with BIN 42424229, last four 7234 and expiration 03/2028. Read it, proxy it and charge it against your processor's sandbox as you would any Basis Theory token. Whether the processor's sandbox accepts the test card is up to the processor.