Payments practice

Payments that reconcile.

Stripe, Adyen, Unit, Checkout.com and Plaid, plus push-to-card over Visa Direct and Mastercard MoneySend. Every integration we work on, new or existing, gets idempotency, duplicate-event protection, partial-failure recovery and a reconciliation finance can close the month from.

  1. 01 / 03 Ledger

    Record it before you call the provider.

    Every write that creates, moves or refunds money carries an idempotency key built from a business identifier. The request record is saved before the provider call, so a retry after a crash finds the attempt it is retrying.

  2. 02 / 03 Provider and bank

    Expect late, doubled and missing answers.

    Webhooks arrive twice, out of order or not at all. A timeout after the provider accepted is unknown, not failed, and is resolved by query before any retry. Event IDs carry a unique constraint, so a duplicate is acknowledged and ignored.

  3. 03 / 03 Tie-out

    Reconcile three ways, every day.

    Ledger, provider and bank, compared automatically at least once a day. Tolerance zero on count, one minor unit on amount. Every break lands in a queue with an owner and an age, and month-end closes from system data, not a spreadsheet.

A row locks white when ledger, provider and bank agree. Amber rows still need explaining.

What breaks

Where money goes wrong.

  • A payout times out after the provider accepted it.
  • The same webhook arrives twice, or paid arrives before created.
  • Our write succeeded and the provider rejected the payment.
  • A worker restarts in the middle of a money job.
  • Amounts stored in floating point, or without their currency.
  • Month-end closes from a spreadsheet, and breaks are carried forward without anyone deciding to.
One day, checked three ways.
TransactionLedgerProviderBankState
po_8f3a21 payout1,240.001,240.001,240.00Matched
ch_51d0e4 charge89.9089.9089.90Matched
po_77b2c9 payout500.00500.00noneMissing at bank
ch_9c14aa charge42.0042.0041.00Short 1.00
po_31e5f0 payout300.00600.00600.00Duplicate at provider
rf_2a07d1 refund-15.00-15.00-15.00Matched

3 matched3 to explain before closeTolerance: 0 on count, 1 minor unit on amount

What the ledger holds, what the provider holds and what the bank holds, for one day. The assessment reviews this tie-out on your system.

What we build

Priced from what the assessment finds.

Every build is priced from the assessment's findings, so the price is fixed before work starts.

01 / 03 Fixed price

Integration and Reconciliation Build

Accepting, paying out and reconciling on your rails, with a date, a change-control clause and milestone billing. Every change is checked against our 42-item acceptance checklist.

See the assessment

02 / 03 Monthly

Reconciliation and Payouts Retainer

On what we built: breaks, payout runs and the alerts behind them. Priced on response time and coverage.

Every fee on the pricing page

03 / 03 Fixed package price

Money-Code Assurance

Test automation and a safety net for money-handling code: idempotency suites, ledger reconciliation under load, decimal precision, KYC state machines and compliance traceability. After a build, or before an audit or a launch.

Ask about it on a call

Method

How a payments engagement runs.

  1. 01 / 04 1 or 2 weeks

    Assess

    We map every flow that creates, moves or refunds money, test how each one fails, and check reconciliation across ledger, provider and bank.

  2. 02 / 04 Report

    Plan

    A severity-ranked findings report, a target design, a costed roadmap and a fixed-price quote for the build.

  3. 03 / 04 Fixed price

    Build

    A date, change control and milestone billing. A design document comes before any code that touches money, and you get a written status every week.

  4. 04 / 04 Yours

    Hand over

    The system and its design documents move to your team. If you want us on call for it, the retainer covers what we built.

Assessment

Payment Operations Assessment

Every payments engagement starts here: one or two weeks at a fixed fee. You keep the report even if someone else does the build.

What you keep

  • A severity-ranked findings report.
  • A target design.
  • A costed roadmap.
  • A fixed-price quote for the build.

Published fee

$9,500One week, single rail

$14,500Two weeks, multi-rail or payouts

Half on signature, half on delivery. We don't bill by the hour.

Case study

Paying out to debit cards in minutes.

Push-to-card payouts on a regulated banking platform, built so every payout either lands on the card or goes back to the account it came from. Delivered by our principal, Rey Narvaez, in regulated production before Aripone was formed.

Self-check

Score it before you call.

Fifteen questions from the acceptance checklist, two minutes, scored in your browser. Nothing is sent. It tells you whether money can be duplicated or lost silently today, and what to fix first.

  1. 01

    Payments Readiness Scorecard

    15 questions ยท 2 min

Example result

36/ 100At risk

Do these first

  1. Idempotency. Persist a request row keyed by business ID before the call; make the ledger write conditional on it.
  2. Webhooks and events. Event-ID table with a unique constraint; match on provider object ID, never on amount.
  3. Reconciliation. Daily job comparing ledger, provider balance and bank statement; tolerance zero on count, one minor unit on amount.

Illustrative example, not a client's data.

Every part settled into one system that keeps running.

Scoping call

Tell us about the money.

Bring the failure that worries you most. In 30 minutes we'll tell you whether the assessment is worth it.