Feasable Payments

Getting paid shouldn't hinge on one provider.

One integration. Every provider watched. A checkout that routes around failure.

01CheckoutPress the button. That is a sale.
02RouterTurns toward the healthiest lane.
03ProvidersTap a valve to shut it.
04LedgerPrints every settlement. Never edits.

Your browser can't draw the 3D model. Here's what it does: checkout → router → healthy provider → ledger. If a provider fails, the next payment is rerouted. If every provider fails, nothing is charged.

Warming up the tubes…0 paid0 rerouted0 held0 double charges
A

Integrate once

One API for checkout, status and webhooks. New providers arrive as new lanes, not new code.

B

Watched every minute

Every lane is probed and scored on real outcomes. Failing ones are cut before they cost a sale.

C

Routed, not guessed

Ambiguous result? We ask the original provider. Never retried blind. Never double-charged.

D

Records that hold

Append-only ledger, one status model, signed webhooks. Reconciliation becomes a lookup.

Four ways a sale quietly dies.

Field notes · Windhoek

  1. 01

    The chase

    The invoice goes out Monday. By Friday nobody knows if it was paid.

  2. 02

    The retyping

    A payment lands. Someone types it into the books. Then someone checks it.

  3. 03

    The dead provider

    The customer is ready. The provider is timing out. The sale dies quietly.

  4. 04

    The maze

    Every provider is a different API, a different callback, a different project.

Who it's for

1

The storefront

Your store works until checkout. Then a provider stalls and the cart dies.

2

The practice

Invoices by hand. Payments chased on WhatsApp. Month-end spent guessing.

3

The builder

You want a clean checkout API, not a second career in gateway docs.

For developers

Write the code. We run the rails.

  • Idempotent by design
  • Signed webhooks that retry
  • Sandbox keys that work end to end
Read the API docs →
checkout.tsnode
import { Feasable } from "@feasable/node";

const feasable = new Feasable(process.env.FEASABLE_KEY);

// one call. we pick the healthy provider.
const session = await feasable.checkout.create({
  amount: 45000,        // N$ 450.00
  currency: "NAD",
  provider_id: "auto",
  success_url: "https://yoursite.com/paid",
});

res.redirect(session.url);

House rules

01

We route money. We never hold it.

Funds go from your customer to your account. Nothing pools with us, so onboarding takes days.

02

Records are never edited.

Corrections are new records: voids, credit notes, reversals. Built to survive an audit.

03

When in doubt, we fail closed.

If anything looks wrong, the payment stops and you are told. No guessing.