Reusable EMV Level 3 framework

Write the L3 core once.
Cast it per processor.

Foundry is the engine behind Paying.co's certifications — a native EMV L3 lifecycle written once, with each processor added as a thin, swappable adapter.

Native C99 core. Android/Kotlin SDK rides on top as a wrapper.

132certifications shipped
<50%of prior pricing
75 / 25shared core / adapter

One core → many castings

L3 CORE lifecycle · TLV · crypto GP · UCP REST TSYS TransIT NAB · Velocity EPX · via NAB Santander · MXN
only authorize()ever crosses the processor boundary.
132
EMV L3 certifications across multiple countries & currencies
weeks
not months — timelines cut by reusing a proven, tested core
<50%
of prior rates — the shared engine is already built and tested
The Foundry model

A mold you reuse, a casting per client

Every EMV L3 engagement repeats the same lifecycle. Foundry writes that lifecycle once and treats the processor as the only part that changes.

01 · CORE

The engine is written once

Canonical model, BER-TLV parser, hardware abstraction, the transaction engine and crypto — roughly 75% of every certification, built and battle-tested.

02 · CAST

Each processor is an adapter

A new engagement means implementing one seam. Only authorize() differs per processor — credentials live in the injected transport, never the adapter.

03 · SHIP

Certify faster, for less

Because the core arrives already proven, the work — and the timeline, and the cost — collapses to the adapter and the test scripts.

Inside the core

Everything the lifecycle needs, in one place

  • Canonical model & BER-TLV

    One normalized transaction shape and a full TLV parser + view engine feeding every adapter.

  • ISO 4217 money handling

    Exponent-aware minor units in one module — JPY (0), USD/MXN/EUR (2), BHD/KWD (3) — no adapter guesses on its own.

  • Crypto & key management

    Key provisioning and the crypto seam built into the core, ported intact to native C.

  • Transport-agnostic API facade

    Sale, pre-auth, completion, void, refund and get — with an idempotency store and clean in-band error codes.

/* The only seam a new processor implements */
fdy_status_t authorize(
    const fdy_txn_t   *txn,
    const fdy_creds_t *creds,   // held by transport
    fdy_auth_result_t  *out
) {
    // map canonical → processor request
    // send via injected HTTP transport
    // map response → canonical result
    return FDY_OK;
}
/* everything else — lifecycle, TLV,
   money, crypto — is already done. */
Processor castings

Eight processors. One core.

Every casting on the roster is live and shipping today — a growing engine that adds one processor at a time.

Global Payments

Shipped

UCP REST casting, fully multi-currency.

TSYS TransIT

Shipped

Transit-focused adapter, intentionally USD-only.

NAB

Shipped

NAB Velocity casting.

Santander

Shipped

ISO 8583, MXN — via Prosa, Mexican acquiring.

EPX

Shipped

Via NAB, Custom Pay XML casting.

Elavon EPG

Shipped

EPG casting, multi-currency.

Cybersource

Shipped

Visa Platform Connect casting.

TSYS TransIT Gateway

Shipped

A second TSYS path, alongside the TransIT adapter.

Certified hardware
ID TECH PAX AXIUM by Ingenico
Native core, any target

A pure C99 engine that runs where you need it

Foundry's core was ported 1:1 to native C99 — no Android, JVM, or coroutine dependencies. Embed it on unattended terminals, kiosks, or behind any language's FFI, with the Android/Kotlin SDK riding on top as a wrapper.

C99 core Android / Kotlin Kiosk & unattended CMake · Makefile FFI-ready

Built once, verified everywhere

C99
no runtime deps
clean
ASan · UBSan · LSan
mold cast once, per-engagement adapter
processor seam is the only variable
money & crypto centralized in the core

Certify with a core that's already proven

Reconnect on an EMV L3 engagement and put 132 certifications' worth of tested groundwork to work on yours.