Skip to content

Magento migration · public alpha

Migrate off Magento to a commerce API you never patch.

Flint is the backend for the storefront you build next: catalog, stock, promotions, sales tax, checkout, payments, net terms invoices, subscriptions, and returns on one hosted API, with an official PHP SDK. Your SKUs, increment ids, and customer ids carry across as fields on the records. After cutover there is no server, extension, or security patch left for you to maintain.

3.79% + 35¢ on cards · no monthly fee · free sandbox · no credit card

flintpay/flint
use Flint\{Client, ClientOptions, RequestOptions};

$flint = new Client(new ClientOptions(
    baseUrl: 'https://api.withflintpay.com',
    apiKey: getenv('FLINT_API_KEY'),
));

// 1. The cart becomes an order. Your increment id rides on it.
$order = $flint->orders->create([
    'external_reference_id' => $incrementId,
    'metadata' => $magentoIds,
    'line_items' => $lineItems,
    'delivery_destination' => ['address' => $shippingAddress],
    'tax' => [
        'enabled' => true,
        'calculation' => [
            'mode' => 'automatic',
            'price_mode' => 'additive',
        ],
    ],
], new RequestOptions(idempotencyKey: "order-$incrementId"));

// 2. Open a checkout for it and send the buyer there.
$session = $flint->checkoutSessions->create([
    'order_id' => $order->order_id,
], new RequestOptions(idempotencyKey: "checkout-$incrementId"));

header('Location: ' . $session->checkout_session->url);

The first order after cutover, on PHP 8.2 or later with no framework dependency. You never send a total: Flint computes the tax and the total from the line items and the address.

checkout.withflintpay.com
The checkout those two calls open. Cards, Apple Pay, Google Pay, ACH debit, and Affirm, with your brand on it, and nothing for you to host or keep PCI compliant.

PHP and Node SDKs · 574 API operations · the API key picks test or live

01The deadline

Open Source 2.4.6 and older no longer get security patches.

The support table most migration plans quote is Adobe Commerce's. Extended support is a benefit of the paid license, so a Magento Open Source version ends at its standard support date, about a year earlier.

"Extended support security patches are available to Adobe Commerce customers only. They are not available for the Magento Open Source code base."

VersionStandard support endsExtended (Adobe Commerce only)Magento Open Source
2.4.42025-04-122026-04-14No patches since 2025-04-12
2.4.52025-08-122026-08-11No patches since 2025-08-12
2.4.62026-08-112027-08-31No patches since 2026-08-11
2.4.72027-05-312028-05-31Ends 2027-05-31
2.4.82028-05-31TBDEnds 2028-05-31
2.4.92029-05-31TBDEnds 2029-05-31

On Flint there is no version to fall behind.

Nothing to patch

Flint is a hosted API. Security fixes ship on Flint's side, and your storefront code does not change when they do.

Upgrades when you choose

API versions are dated. Flint keeps serving the version you built against after newer ones ship, and you can undo an upgrade for 72 hours.

New features without a release

New fields and endpoints ship continuously under the version you already use, so getting them is never an upgrade project.

API versions and upgrades →

reviewed 2026-09-20 against Adobe's lifecycle and release policies · corrections: Flint Help

02What you stop running

Eight things a Magento store runs, and where each lives on Flint.

A Magento store is core modules and extensions upgraded together, on servers you patch. On Flint the same jobs are fields and endpoints on a hosted API, and the dashboard your team works in comes with the keys.

A self-hosted Magento Open Source store

sales_order 100000042your servers
  1. Catalog

    Configurable and simple products in EAV tables

    indexers and cron keep the storefront current

  2. Stock

    Multi-Source Inventory sources and stocks

    salable quantity from a reservation table and a reindex

  3. Sales tax

    Tax rules over a rate table you import and maintain

    or a tax extension

  4. Payments

    A gateway module and its vault

    re-tested on every Magento upgrade

  5. Refunds

    A credit memo against an invoice

    an online refund runs through the gateway module

  6. Net terms

    The B2B module, in Adobe Commerce only

    on Open Source, an extension or custom code

  7. Subscriptions

    A third-party extension

    its own tables, cron jobs, and upgrade path

  8. Hosting

    PHP, MySQL, OpenSearch, and cron on servers you run

    security patches, plus one upgrade a year

8 modules and extensions, upgraded together once a year

On Flint

api.withflintpay.comone set of keys
  1. Catalog

    products[].variants[]POST /v1/products
  2. Stock

    inventory_levelsGET /v1/inventory-levels
  3. Sales tax

    tax.calculation.mode: "automatic"pricing_amounts.tax_money
  4. Payments

    checkout_session.urlPOST /v1/checkout-sessions
  5. Refunds

    line_items[].order_line_item_idPOST /v1/refunds
  6. Net terms

    default_invoice_payment_term_idPOST /v1/invoice-payment-terms
  7. Subscriptions

    billing_start.type: "imported"POST /v1/subscriptions
  8. Hosting

    Flint-Version: 2026-09-07nothing to host

1 API key · 1 dated API version · 0 servers

03Your data

Every Magento record has a place to land.

Flint resources take your own identifier and free-form metadata. Magento ids travel with the records, so your ERP, your reports, and the order numbers customers quote to support keep resolving after the move.

  • Configurable product and its simple children

    On Flint: Product, options, and variants

    POST /v1/products

    The SKU stays on the variant and finds the product again

  • MSI source and source item quantity

    On Flint: Location and inventory level

    POST /v1/inventory-adjustments

    The source code, as the adjustment's source system id

  • Customer, with the entity id your ERP knows

    On Flint: Customer

    POST /v1/customers

    The Magento id, tax exemption, and default payment terms

  • Cart price rule and coupon code

    On Flint: Promotion

    POST /v1/promotions

    The same coupon code, resolved at checkout

  • Order increment_id and entity_id

    On Flint: Order

    external_reference_id

    Both ids, and the orders list filters by the first

  • Shipment and tracking number

    On Flint: Fulfillment and package

    POST /v1/orders/{order_id}/fulfillments

    Carrier and tracking number, on the package

  • Credit memo

    On Flint: Refund by line item

    POST /v1/refunds

    The credit memo number, as the refund's own reference

  • Vault card

    On Flint: Saved payment method

    POST /v1/payment-methods

    Saved once by the buyer, then reused for checkout and autopay

  • Subscription from an extension

    On Flint: Subscription

    POST /v1/subscriptions

    The running period, so nobody is charged twice

04The cutover

Move a Magento store in five steps.

Each step is a loop over Magento's REST API in a PHP script. Run it against a sandbox first: test keys use the same host and the same paths as live, so the script you rehearse is the script you ship.

  1. Import the catalog by SKU

    POST /v1/products

    A configurable product becomes a product with options, and each simple child becomes a variant that keeps its SKU. The Magento entity ids ride along in metadata, so anything that references a product by id keeps resolving.

    In Magento
    GET /rest/V1/products/BRK
    
    {
      "id": 2040,
      "sku": "BRK",
      "name": "Shelf bracket",
      "type_id": "configurable",
      "extension_attributes": {
        "configurable_product_options": [
          { "attribute_id": "187", "label": "Finish" }
        ],
        "configurable_product_links": [2041, 2042]
      }
    }
    
    GET /rest/V1/configurable-products/BRK/children
    
    [
      { "id": 2041, "sku": "BRK-OAK-1", "price": 89 },
      { "id": 2042, "sku": "BRK-WAL-1", "price": 94 }
    ]
    On Flint
    curl -X POST https://api.withflintpay.com/v1/products \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Idempotency-Key: import-magento-2040" \
      -d '{
        "name": "Shelf bracket",
        "product_type": "physical",
        "external_reference_id": "BRK",
        "metadata": { "magento_entity_id": "2040" },
        "options": [
          {
            "client_option_key": "finish",
            "name": "Finish",
            "values": [
              { "client_value_key": "oak", "value": "Oak" },
              { "client_value_key": "walnut", "value": "Walnut" }
            ]
          }
        ],
        "variants": [
          {
            "sku": "BRK-OAK-1",
            "unit_price_money": { "amount": 8900, "currency": "USD" },
            "inventory_item": {
              "name": "Shelf bracket, oak",
              "sku": "BRK-OAK-1"
            },
            "selected_option_values": [
              { "client_option_key": "finish", "client_value_key": "oak" }
            ],
            "metadata": { "magento_entity_id": "2041" }
          }
        ]
      }'
    Find it again by the SKU you already have
    curl 'https://api.withflintpay.com/v1/products?sku=BRK-OAK-1' \
      -H "Authorization: Bearer YOUR_API_KEY"

    An incremental import finds the product to update without a mapping table.

  2. Put your stock on the shelf

    POST /v1/inventory-adjustments

    Each MSI source becomes a location, and each source item quantity arrives as one adjustment. From then on Flint holds units when a buyer pays and releases them when a payment fails, and a payment for stock that is gone fails before any money moves.

    In Magento
    GET /rest/V1/inventory/source-items
        ?searchCriteria[filter_groups][0][filters][0][field]=sku
        &searchCriteria[filter_groups][0][filters][0][value]=BRK-OAK-1
    
    {
      "items": [
        {
          "sku": "BRK-OAK-1",
          "source_code": "augusta",
          "quantity": 24,
          "status": 1
        }
      ]
    }
    On Flint
    curl -X POST https://api.withflintpay.com/v1/inventory-adjustments \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Idempotency-Key: opening-stock-BRK-OAK-1" \
      -d '{
        "reason": "received_stock",
        "occurred_at": "2026-09-20T14:00:00Z",
        "source_system": {
          "type": "other",
          "external_source_id": "magento-msi-augusta"
        },
        "lines": [
          {
            "inventory_item_id": "invi_1kmn0aExample",
            "location_id": "loc_1kmn0aExample",
            "on_hand_quantity_delta": 24
          }
        ]
      }'

    The response carries the resulting level for every line, so the import needs no follow-up read.

  3. Bring customers with their ids and terms

    POST /v1/customers

    The Magento customer id becomes the customer's reference. Wholesale accounts carry their tax exemption and default payment terms. A buyer saves a card once, on your page or in their Flint customer account, and it is there for one-click checkout, subscriptions, and invoice autopay.

    curl
    curl -X POST https://api.withflintpay.com/v1/customers \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Idempotency-Key: import-customer-318" \
      -d '{
        "external_reference_id": "318",
        "name": "Harbor Supply Co.",
        "email": "ap@harborsupply.example",
        "tax_exempt": true,
        "default_invoice_payment_term_id": "ipt_1kmn0aExample",
        "metadata": { "magento_website_id": "1" }
      }'
  4. Take the next order on Flint

    POST /v1/orders

    Keep your increment id sequence going and send the next number as the order's reference. You send names, quantities, prices, and the shipping address. Flint computes the tax for that address and the total, and holds the balance that every payment and refund settles against.

    curl
    curl -X POST https://api.withflintpay.com/v1/orders \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Idempotency-Key: order-100000042" \
      -d '{
        "external_reference_id": "100000042",
        "metadata": {
          "magento_entity_id": "8891",
          "magento_store_id": "1"
        },
        "line_items": [
          {
            "name": "Shelf bracket, oak",
            "sku": "BRK-OAK-1",
            "quantity": 1,
            "unit_price_money": { "amount": 8900, "currency": "USD" },
            "tax": { "taxable": true }
          },
          {
            "name": "Wall anchor, pack of 4",
            "sku": "ANC-4",
            "quantity": 3,
            "unit_price_money": { "amount": 2400, "currency": "USD" },
            "tax": { "taxable": true }
          }
        ],
        "delivery_destination": {
          "address": {
            "line1": "540 Broad Street",
            "city": "Augusta",
            "state": "GA",
            "postal_code": "30901",
            "country": "US"
          }
        },
        "tax": {
          "enabled": true,
          "calculation": { "mode": "automatic", "price_mode": "additive" }
        }
      }'
    what Flint computed
    Shelf bracket, oak, quantity 1line_items[0]$89.00
    Wall anchor, pack of 4, quantity 3line_items[1]$72.00
    Subtotalpricing_amounts.subtotal_money$161.00
    Tax, Augusta GApricing_amounts.tax_money$12.88
    Totalpricing_amounts.total_money$173.88
    There is no rate table behind the tax line. Change a line item or the address and every figure is recomputed.
  5. Move subscribers without charging them twice

    POST /v1/subscriptions

    Send the date each subscriber's current period began. Flint charges nothing for that period, works out when it ends from the plan interval, and bills the next renewal on schedule. Retries, dunning emails, pause, and resume are Flint's to run from then on.

    curl
    curl -X POST https://api.withflintpay.com/v1/subscriptions \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Idempotency-Key: import-subscription-7714" \
      -d '{
        "subscription_plan_id": "plan_1kmn0aExample",
        "customer_id": "cus_1kmn0aExample",
        "payment_method_id": "pm_1kmn0aExample",
        "external_reference_id": "7714",
        "billing_start": {
          "type": "imported",
          "period_started_at": "2026-09-01T00:00:00Z"
        }
      }'

Inventory guide →·Subscription billing guide →

reviewed 2026-09-20 against the published API · corrections: Flint Help

05Refunds

A credit memo becomes one call. The tax comes back with it.

Name the line item and the quantity. Flint works out what that line settled for, adds its share of the tax, sends the money back to the card, records the split on the order, and rejects any refund larger than what was paid.

curl
curl -X POST https://api.withflintpay.com/v1/refunds \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: refund-100000042-anchors" \
  -d '{
    "order_id": "ord_1kmn0aExample",
    "external_reference_id": "creditmemo-100000031",
    "reason": "requested_by_customer",
    "line_items": [
      { "order_line_item_id": "li_2pqr7bExample", "quantity": 3 }
    ]
  }'

The credit memo number rides along as the refund's own reference.

201 Created
{
  "data": {
    "refund_id": "ref_1kmn0aExample",
    "order_id": "ord_1kmn0aExample",
    "external_reference_id": "creditmemo-100000031",
    "status": "succeeded",
    "amount_money": { "amount": 7776, "currency": "USD" },
    "line_item_allocations": [
      {
        "order_line_item_id": "li_2pqr7bExample",
        "quantity": 3,
        "amount_money": { "amount": 7200, "currency": "USD" },
        "tax_money": { "amount": 576, "currency": "USD" }
      }
    ]
  }
}

$72.00 for the anchors plus $5.76 of tax. You sent a line item id and a quantity, and no amounts.

three packs of anchors, refunded
Order totalpricing_amounts.total_money$173.88
Wall anchor, pack of 4, quantity 3line_item_allocations[].amount_money$72.00
Tax on that lineline_item_allocations[].tax_money$5.76
Paid after the refundsettlement_amounts.paid_money$96.12
Both parts are written back onto the order, so support and reporting read the same figures.
app.withflintpay.com
The same order in the Flint dashboard, which replaces the Magento admin. All 20 of its sections are there the first time you sign in.

Events your ERP sync subscribes to

  • order.paid
  • order.refunded
  • refund.created
  • refund.updated
  • invoice.paid
  • invoice.overdue

Each event carries a snapshot of the object with your reference on it, so the listener finds the ERP record without a lookup table. Both SDKs verify the signature. Webhooks guide →

flint listen --forward-to http://localhost:8080/webhooks/flint

The CLI forwards events to localhost while you build, with no tunnel and no public URL.

POST /webhooks/flint
{
  "webhook_event_id": "whev_1kmn0aExample",
  "event_type": "refund.updated",
  "payload_version": 1,
  "mode": "live",
  "merchant_id": "mer_1kmn0aExample",
  "created_at": "2026-09-20T14:00:00Z",
  "data": {
    "refund_id": "ref_1kmn0aExample",
    "order_id": "ord_1kmn0aExample",
    "external_reference_id": "creditmemo-100000031",
    "status": "succeeded",
    "amount_money": { "amount": 7776, "currency": "USD" }
  }
}

Refund by amount, by line item, or by charge. Refunds guide →

06Wholesale

Net 30, reminders, and ACH debit are part of the API.

In Magento, company accounts and payment on account belong to the Adobe Commerce B2B module, so an Open Source store buys an extension or writes them. On Flint a wholesale customer carries payment terms, and Flint does the follow-up on every invoice.

curl
curl -X POST https://api.withflintpay.com/v1/invoice-payment-terms \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: terms-net-30" \
  -d '{
    "name": "Net 30",
    "calculation": { "type": "net_days", "days": 30 },
    "late_fee_policy": {
      "type": "percentage",
      "percent": 1.5,
      "grace_period_days": 5
    }
  }'

Terms resolve the due date in 5 ways, from on receipt to days after month end. Set one as a customer's default and every invoice for them picks it up.

app.withflintpay.com
A wholesale invoice on net 30 terms. Flint emails it with a payment page, sends the reminders, marks it overdue, and raises the late fee notice.

Terms and tax exemption on the customer

Give a wholesale account its default terms and mark it tax exempt once. Invoices and orders for that customer follow both.

  • POST /v1/invoice-payment-terms
  • default_invoice_payment_term_id
  • tax_exempt

Reminders and late fees run themselves

Set a reminder schedule around the due date. Flint sends each email, emits an event you can act on, and computes the late fee from the open balance.

  • invoices.reminder_policy
  • invoice.reminder_due
  • invoice.late_fee_due

Card, ACH debit, checks, and autopay

Buyers pay on a hosted page by card or bank debit. Charge a saved card automatically with retries, and record the checks and wires that arrive outside Flint.

  • POST /v1/invoices/{invoice_id}/collect
  • POST /v1/invoices/{invoice_id}/manual-payments
  • invoices.autopay_retry_policy

Invoicing guide →

07Also included

The extensions you would have installed are already here.

Each of these is an endpoint on the same keys, with a screen in the same dashboard. None of them is a separate vendor, a separate bill, or a compatibility check before an upgrade.

Checkout, hosted or on your page

Send buyers to the hosted page, or mount Stripe Elements in your own checkout and run 3D Secure there. Apple Pay and Google Pay work on your domain once you register it.

  • POST /v1/checkout-sessions
  • POST /v1/payment-method-domains
  • payment_collection

Promotions

Automatic rules and coupon codes, resolved at checkout and applied to the order's totals before tax. Recreate a coupon under the same code and buyers keep using it.

  • POST /v1/promotions
  • GET /v1/promotion-codes?code={code}&expand=promotion

Shipping options

Delivery methods with fixed prices, rate tables, or live rates from your own endpoint. Flint quotes the buyer's address, records the choice, and taxes the charge.

  • POST /v1/delivery-methods
  • POST /v1/checkout-sessions/{checkout_session_id}/delivery-quotes
  • POST /v1/checkout-sessions/{checkout_session_id}/delivery-selections

Fulfillment and returns

Fulfillments, shipments, and packages with tracking on the order that was paid, and returns that refund the right lines and put stock back.

  • POST /v1/orders/{order_id}/fulfillments
  • POST /v1/shipments
  • POST /v1/returns

Customer accounts

Every buyer gets an account with order history, tracking, subscriptions, saved cards, and returns. Use Flint's under your brand, add your own domain for $15 a month, or build your own over a customer session.

  • POST /v1/customer-sessions
  • GET /v1/me/orders
  • GET /v1/me/subscriptions

Transactional email

Receipts, shipping notices, invoice reminders, and dunning emails go out with your branding. There are no email templates to port.

  • PATCH /v1/settings
  • branding

What comes with the keys

Stripe processes every card. You sign up once and hold one set of keys.

Card data goes straight from the checkout page to Stripe, with the same PCI scope, fraud detection, and dispute handling as a direct integration. Flint provisions and runs the processing account, and you pay one processing fee per payment.

574
API operations on one set of keys
92
resource families, products to payouts
211
webhook event types to subscribe to
20
dashboard sections in place of the admin

API counts come from the published OpenAPI spec · every code sample is checked against it at build time

Public alpha

Alpha accounts get new features first.

Merchants take real payments on Flint today, and new features reach alpha accounts before general rollout. The catalog you import into a sandbox this week is the rehearsal for your cutover.

shipped 2026-09-29 · Codes for saved details default to the auto channel

What alpha accounts get →

Building now?

Create an account from your terminal with flint signup. The sandbox is free, with no credit card.

08Start

From a sandbox key to a paid test order in ten minutes.

PHP

composer require flintpay/flint:0.3.0-beta.1

Node

npm install @flintpay/node

CLI

npm install -g @flintpay/cli

Test keys are prefixed flint_test_ and bound to a sandbox with its own data, so a rehearsal import never touches live money. Live keys are prefixed flint_live_, on the same host and the same paths. Pay with 4242 4242 4242 4242, any future expiry, any CVC.

Sources

Adobe's documentation, for every Magento claim.

  • Standard and extended support dates for every 2.4.x release. Software lifecycle policy

    experienceleague.adobe.com
  • Extended support patches are for Adobe Commerce customers only, not Open Source. Release policy

    experienceleague.adobe.com
  • The vault stores a gateway token and a public hash, never card data. Vault payment token

    developer.adobe.com
  • Company accounts, quotes, and payment on account are the Adobe Commerce B2B module. Adobe Commerce B2B

    experienceleague.adobe.com

last reviewed 2026-09-20 · corrections: Flint Help

FAQ

Before you sign up.

When does Magento Open Source stop getting security patches?

At the end of standard support for your version. Adobe's release policy states that extended support security patches are available to Adobe Commerce customers only and are not available for the Magento Open Source code base. Standard support ended on April 12, 2025 for 2.4.4, August 12, 2025 for 2.4.5, and August 11, 2026 for 2.4.6. It ends on May 31, 2027 for 2.4.7, May 31, 2028 for 2.4.8, and May 31, 2029 for 2.4.9. Flint is a hosted API, so there is no version of it for you to patch.

Can Flint replace Magento?

Flint replaces the Magento backend: catalog, stock, promotions, sales tax, checkout, payments, invoices, subscriptions, fulfillment, returns, customer accounts, and the admin. You build the storefront in whatever you like, which is the part a move off Magento rebuilds anyway, and it calls Flint from your server with the PHP or Node SDK. Flint’s hosted checkout and hosted customer account mean the storefront only has to cover browsing and the cart.

Is there a PHP SDK?

Yes. flintpay/flint is the official PHP SDK, for PHP 8.2 and later with the cURL and JSON extensions and no framework dependency. It is generated from the same API contract as the Node SDK, @flintpay/node, so every public operation is a method in both, and both verify webhook signatures for you. The API is plain HTTP and JSON, so neither is required.

How do my Magento order numbers and SKUs carry over?

As fields on the Flint records. Orders, products, customers, refunds, and subscriptions each take an external_reference_id and free-form metadata, so an order can carry its Magento increment id and entity id, and the orders list filters by the reference. Variants keep their Magento SKU, and the products list finds a product by it, so an incremental import needs no mapping table.

What happens to saved cards when I leave Magento?

Magento's vault stores a gateway token and a public hash, never the card number, and the token only means something to the gateway that issued it. A database export therefore contains no cards to move, whichever platform you choose. On Flint a buyer saves a card once, on your page or in their Flint customer account, and it is then available for one-click checkout, subscriptions, and invoice autopay. Card details go from the buyer's browser to Stripe and never reach your server.

Can I move subscribers without charging them twice?

Yes. Create each subscription with an imported billing start and the date the subscriber's current period began. Flint charges nothing for that period, computes its end from the plan interval, and takes over at the next renewal. Renewals land as orders, so refunds and reporting work the same way as for any other sale.

Does Flint support B2B net terms?

Yes. Invoices take payment terms such as net 30, a day of the month, or days after month end, with an optional late fee policy, and a customer can carry default terms and a tax exemption. Flint emails the invoice with a hosted payment page that takes card and ACH debit, sends reminders on your schedule, marks the invoice overdue, retries a saved card on autopay, and records checks and wires you receive elsewhere. Invoicing guide

How is sales tax calculated?

Flint calculates US sales tax on the order from the delivery destination you send, on the line items and on shipping charges, and returns it in the order's pricing amounts. There is no rate table to import or keep current. If you already run a tax engine, send its jurisdiction components in external mode and Flint records them on the order and reverses them on refunds.

Who processes the cards?

Stripe processes every card. Card data goes directly from the checkout page to Stripe, with the same PCI scope, fraud detection, and dispute handling as a direct Stripe integration. Flint provisions and operates the processing account, so there is one signup, one set of keys, and one fee per payment.

What does it cost?

Cards cost 3.79% + 35¢, with no monthly fee. There is no hosting bill or extension license; automatic tax, invoices, subscriptions and a custom domain are optional add-ons with published rates. The sandbox is free and needs no credit card. One processing fee per payment covers Flint and the card processing underneath, so there is no separate processor bill.

How do I get started?

Request access and we email you a link to create your account, or create one now from your terminal with flint signup. The sandbox is free, with no credit card and no sales call. Flint is in public alpha and onboards US businesses today; buyers can pay from anywhere. Install the PHP SDK, create an order with a Magento increment id on it, and pay it with the 4242 test card in about ten minutes. Quickstart

Make this your last Magento upgrade cycle.

Free sandbox, no credit card, no sales call. Import one product, take one test order with your increment id on it, and refund one line, in about ten minutes.

Skip the wait: npm install -g @flintpay/cli && flint signup creates your account and a sandbox key from the terminal. CLI guide

POST /v1/orders · create your first order