Test card only

Credit Card Number Generator

Generate dummy card details for development and QA. Nothing is stored or sent to a server.

Card network
These numbers are dummy, Luhn-valid test values for software testing only. They are not real active cards and cannot be used for payments.

This Troy card generator produces 16-digit, Luhn-valid test numbers on the 9792 prefix. Troy is the network international checkout code most often forgets, and the failure is rarely a validation error — it is a card that passes every length and checksum rule and then renders as “unknown” or unsupported, so the customer is told their card will not work when it is perfectly good.

What is Troy?

Troy — Türkiye’nin Ödeme Yöntemi, Türkiye’s Payment Method — is the country’s domestic card scheme. It was established in 2016 within the Interbank Card Center (BKM), Bankalararası Kart Merkezi, and is issued by Turkish banks as debit, credit, and prepaid cards. Troy’s own site is the other primary source.

The motivation is the one behind every domestic scheme: keeping local transactions on local infrastructure, reducing the fees paid out to international networks, and holding a degree of payment sovereignty. Troy is not unusual in this — RuPay in India, UnionPay in China, Mir in Russia, and Elo in Brazil exist for much the same reasons.

Troy card number format

PropertyValue
IIN / BIN prefix9792
Length16 digits
Check digitLuhn (mod 10)
Security codeCVV, 3 digits
OperatorBankalararası Kart Merkezi (BKM)
CountryTürkiye
Launched2016

Co-badging is the detail that matters for integration. Many Troy cards are issued carrying both the Troy logo and an international scheme logo. BKM is explicit that a card must also carry an international scheme logo to transact abroad; domestically the transaction runs on Troy. Troy cards have been accepted in the United States on the Discover network since 2017. So the same physical card can present as Troy or as an international scheme depending on where the transaction happens — and which logo your checkout displays is a business decision, not something the number can tell you.

Why Troy support matters for developers

  • E-commerce sites selling into Türkiye will encounter Troy cards, and there are a great many of them in circulation.
  • Most payment forms written outside Türkiye have never heard of the 9792 prefix. Brand detection falls through, the card-logo lookup renders a blank or a placeholder, and the customer sees an error implying their card is not supported.
  • Turkish payment providers — iyzico, PayTR, Param, and Craftgate — all support Troy, so the integration path exists and needs testing.
  • Domestic card transactions in Türkiye are subject to local processing requirements, so Troy is often not optional if you are operating there in any serious way.

Troy brand detection

Troy is trivial to detect — 9792 collides with nothing — so the work is remembering to add it at all:

const TROY = /^9792\d{12}$/;

function detectBrand(number) {
  const n = number.replace(/\D/g, '');
  if (/^4/.test(n))                    return 'visa';
  if (/^3[47]/.test(n))                return 'amex';
  if (/^9792/.test(n))                 return 'troy';
  if (/^220[0-4]/.test(n))             return 'mir';
  if (/^(5[1-5]|222[1-9]|22[3-9]|2[3-6]|27[01]|2720)/.test(n)) return 'mastercard';
  if (/^(6011|65|64[4-9])/.test(n))    return 'discover';
  return 'unknown';
}

Two things in that chain are worth more than the Troy line itself.

The Mastercard test is the long one for a reason. A shorter /^(5[1-5]|2[2-7])/ looks equivalent and is not: 2[2-7] covers 22002799, which is wider than Mastercard’s actual 22212720. It swallows Mir’s 22002204 range and labels those cards Mastercard, and it accepts 2721, which belongs to no one. The Mastercard page works through that range split in detail.

Order matters once ranges overlap. 9792 is unambiguous so Troy can sit anywhere, but the Mir check has to come before a loose Mastercard test, not after. With the corrected Mastercard pattern the ordering constraint disappears — which is the better fix.

Testing Troy integration

A Troy card generator is only useful for the first half of this list — the half that runs in your own code:

  • Type a generated number and confirm the Troy logo appears rather than a blank or “unknown”.
  • Confirm a plain 16-digit length check accepts it — Troy needs no special length rule.
  • Confirm the security-code field stays at 3 digits, as for Visa and Mastercard.
  • For a co-badged card, decide and then test which brand your checkout displays and which network you route to.
  • For authorisation, approvals, declines, and 3-D Secure, use the sandbox test cards your Turkish provider publishes. The numbers here exercise your form, not their gateway.

Other national card networks

Troy belongs to a category, and the same integration gap tends to apply across all of it:

NetworkCountryPrefixLength
TroyTürkiye979216
UnionPayChina62, 8116–19
RuPayIndia60, 65, 81, 82, 50816
MirRussia2200–220416
EloBrazil4011, 4312, 5041, 6277, 636216
JCBJapan3528–358916–19

Note the overlaps: RuPay’s 65 collides with Discover, its 81 with UnionPay, and Elo’s 4011 and 4312 sit inside Visa’s 4. Prefix alone cannot always resolve these — a production integration in those markets needs a BIN lookup rather than a regex chain. See the BIN and IIN guide. UnionPay and JCB generators are planned; both networks are already available in the picker on the all-network credit card generator.

To compare Troy’s behaviour against the international schemes, generate a Visa number or a 15-digit Amex number alongside it — Mastercard’s two ranges are covered in the brand-detection section above. The tool directory lists everything else, and the FAQ covers what a Luhn-valid number does and does not prove.

Frequently Asked Questions

Troy is short for “Türkiye’nin Ödeme Yöntemi” — Türkiye’s Payment Method. It is the country’s domestic card scheme, established in 2016 within the Interbank Card Center (Bankalararası Kart Merkezi, BKM).
The Troy BINs in general circulation sit under the 9792 prefix, and that is what this generator produces. As with any scheme, the authoritative answer for a specific card is a BIN table lookup rather than the prefix alone.
Only through a co-badged card. A Troy card used abroad relies on an international scheme logo carried alongside the Troy logo — BKM states that a card must also carry an international scheme logo to transact outside Türkiye. Troy cards have been accepted in the United States on the Discover network since 2017. A Troy-only card works domestically.
16, with a Luhn check digit in the final position and a 3-digit security code — the same shape as Visa and Mastercard. Only the prefix differs, which is exactly why brand detection is where integrations fail rather than length validation.
The major domestic providers do, including iyzico, PayTR, Param, and Craftgate. Each publishes its own sandbox and its own test cards, which are what you need once you are testing authorisation rather than your own form.
No. These numbers are not registered with any provider, so a sandbox will decline them at authorisation. Use them to check that your form detects Troy, accepts the number, and renders the right logo; use the provider’s own test cards for anything that returns a response.