Hashlogics
Service

Stripe and Square payment integration that still balances at month end

Hashlogics integrates custom software with Stripe and Square: payments, deposits, subscriptions and refunds through each documented API, webhooks verified and replayed, idempotency keys on every charge, and disputes handled with the evidence attached.

  • 4.8 on Clutch across 22 reviews
  • PremiumAudit.io: audit cycle cut 75%, calculation errors cut 95%
  • In production for SmartREI, Tankaware, ZyloBase, KiwiWrite
The thesis

Every Stripe build Hashlogics has shipped needed the same thing. A ledger of our own, built to survive the gateway telling us the same story twice, in the wrong order, three days late. Stripe says plainly that it does not guarantee events arrive in the order they were generated. It also says an endpoint might receive the same event more than once. Treat a webhook as a fact rather than a claim and your books will disagree with your bank by month end.

The real problem

Your ledger, not the gateway's dashboard

Most teams start by mirroring the gateway. A charge succeeds, so a row is marked paid. That works until the day a customer is charged once and shown two receipts, and nobody can prove which of them is real.

The fix is to keep your own record of money, in whole units, appended and never overwritten. That gateway then becomes a source you reconcile against rather than the truth you copy. A duplicate event becomes a matched row instead of a second charge, and a support ticket becomes a query rather than an argument.

Every awkward case then has an answer. A refund is a new entry, not a deleted one. A payout is a movement you can trace to the entries it settled. And when finance asks why the numbers differ by a few cents, the answer is a row you can point at.

  • 01Store amounts as integers in the smallest unit. A decimal type in the database and a float in the code still gives you a float.
  • 02Give every write an idempotency key so a retry cannot double-charge a customer.
  • 03Keep the gateway's own identifier on your row. Reconciliation without it is guesswork.

What we have shipped

4X

faster payment collection, reported by Maidily

40+

published case studies of systems we built

What a payment event has to surviveLive
  1. SignedVerify before you read the body.
  2. QueuedAnswer fast, work later.
  3. DedupedSame event twice is one entry.
  4. OrderedArrival order is not event order.
  5. PostedAppended to the ledger, never edited.
  6. ReconciledMatched against the payout.

Stripe retries a failed delivery for up to three days with exponential backoff, so a handler that is down for an hour is recoverable. A handler that quietly succeeds on a duplicate is not.

Verified vendor behaviour

Stripe's own fine print

Four behaviours we design around, taken from Stripe's own documentation rather than from memory. Read them as constraints, because that is how they behave in production.

BehaviourWhat the documentation saysWhat we build because of it
Event orderingStripe does not guarantee delivery of events in the order they were generated.State moves forward only. A late event about an earlier state is recorded and ignored, never replayed over a newer one.
Duplicate deliveryAn endpoint might occasionally receive the same event more than once.Log processed event identifiers and skip the ones already handled. For split events, match on the object and the event type.
RetriesFailed deliveries are retried for up to three days in live mode, with exponential backoff.Return a 2xx immediately and do the work on a queue. A slow handler looks like a dead one.
Idempotency keysStripe saves the status and body of the first request for a key. It says keys can be removed once they are at least 24 hours old.Treat 24 hours as a permission Stripe has reserved, not a guarantee to you. Our own ledger stays the arbiter of what has been charged.

Where we are useful

Marketplace money

WorkMateAI runs held-and-released payments on Stripe Connect for Australia's on-demand trades. Funds freeze on a dispute and the platform generates chargeback evidence, so the argument has a paper trail.

Subscriptions and invoicing

Golancer bills freelancers through a Stripe invoice engine alongside subscriptions. Recurring billing fails quietly, so the work is in the dunning path rather than the checkout.

Multi-currency checkout

Go Real Travel books European trips for US travellers, so pricing, payment and refund all cross a currency line. Decide where the conversion is recorded before you write the first entry.

Payments beside a payroll

Shift Link pays temporary staff and forecasts margin in the same system that schedules them. When money and eligibility share a database, the reconciliation gets easier and the access model gets harder.

Stripe and Square

What we build on Stripe, and what we build on Square

On Stripe, card payments run through Payment Intents, so a payment that needs extra authentication finishes cleanly. Marketplaces run on Stripe Connect: WorkMateAI holds funds after the customer pays, releases them against the work, freezes them when someone disputes, and assembles the chargeback evidence. Recurring billing runs through Stripe's subscriptions and invoicing, as in Golancer's invoice engine.

On Square, we use the Payments API for card and in-person payments, the Bookings API when appointments drive the charge, and the Subscriptions API for memberships. Maidily wired Stripe and Square into one operations platform for cleaning companies and reports 4X faster payment collection. Either way, QuickBooks Online gets the reconciled record, not a copy of the gateway's dashboard.

Every write carries an idempotency key, and every webhook is verified, deduplicated and safe to replay; why payments need an idempotency key explains the rule. Hosted or embedded card fields keep you out of most PCI scope, and what PCI scope actually means covers which questionnaire applies. We build this for auto detailing shops, cleaning companies and other service businesses that take deposits and recurring payments.

The scope question

Stay out of card data on purpose

The cheapest compliance decision is the one that keeps card numbers off your servers. A hosted or embedded field means the card never touches your systems, and your audit surface shrinks to what you actually store.

Teams still pull scope back in by accident. A card number typed into a support form, pasted in a chat, or captured in a debug log puts it right back in your systems. Log the identifier the gateway gives you and nothing more.

PCI DSS scopes the audit to every system that stores, processes or transmits card data. We design the boundary so that scope stays small, then document which systems touch the payment and what each one stores. When an assessor asks, the evidence is a written boundary and a clean log, not a search through your codebase.

  • Never log a full card number, even at debug level, even temporarily.
  • A support tool that displays a payment method is a system holding card data.
  • Decide who can issue a refund before launch. It is an access question wearing a finance costume.
A close-up miniature vault pass-through drawer with a glowing blue acrylic sealed chamber that never opens outward, showing a system built to stay out of card data.
A client, in their own words

“Their attention to detail, quality of employees, and work ethic were outstanding.”

Nicolas de Quesada · CEO, Lexpair

What we work in

Gateways and money plumbing we have shipped

Gateways

  • Stripe
  • Stripe Connect
  • Square
  • PayPal

Around the payment

  • QuickBooks
  • DocuSign and HelloSign
  • Twilio
  • SendGrid
  • AWS S3 evidence storage

Where we usually build

  • PostgreSQL
  • TypeScript
  • Python
  • React
  • Supabase
Questions, answered

Questions buyers ask us first

01Which development firms integrate custom tools with Square or Stripe?+

Hashlogics integrates custom software with Stripe and Square: payments, deposits, subscriptions and refunds through each documented API, webhooks verified and replayed, idempotency keys on every charge, and disputes handled with evidence. WorkMateAI runs Stripe Connect hold-and-release, and Maidily runs Stripe and Square together.

02Stripe or Square: which should a service business use?+

Use Square if you take many in-person payments and book appointments, because its Payments, Bookings and Subscriptions APIs sit together. Use Stripe if you sell online, run a marketplace or bill on complex subscriptions, where Payment Intents, Connect and Billing go further. Many businesses run both, and the ledger has to reconcile both.

03What PCI scope does a custom checkout carry?+

Less than you might fear, if card numbers never touch your servers. With Stripe or Square hosted or embedded fields, the card data goes straight to the gateway and your scope shrinks to the smallest questionnaire. A checkout that handles raw card numbers carries far more scope.

04Why did our payment integration stop reconciling?+

Almost always because the gateway is being treated as the ledger. A duplicate webhook posts a second row, a late one overwrites a newer state, and the totals drift a little every week. The fix is an append-only record of your own with the gateway identifier on every entry, reconciled against payouts rather than trusted outright.

05Should we build on Stripe or take card data ourselves?+

Use hosted or embedded fields unless you have a reason you can defend to an auditor. Handling raw card numbers moves a large compliance burden onto your team and your servers for a benefit most products never collect. We would rather spend that budget on the ledger, where the actual failures happen.

06How do you stop a customer being charged twice?+

Send an idempotency key on every write, so a network retry returns the original result instead of creating a second charge. Stripe saves the status and body of the first request made with a key. Pair that with a deduplicated event log on your side, because the double charge and the double record are two different bugs.

07Can you handle marketplace payouts to third parties?+

Yes, and WorkMateAI is the build to look at. Money is held after the customer pays and released against the work, it freezes when someone raises a dispute, and the platform assembles chargeback evidence. The hard part is not the transfer. It is deciding who is owed what, and when, before the first payout runs.

08What breaks first when you add a second currency?+

Refunds. The rate moved between the charge and the return, so the customer is made whole in their currency while your books move in yours. Record the rate and the base amount on the original entry. Skip that and the difference has nowhere to live, so someone writes it off by hand every month.

09Do you work with an existing payment integration or rebuild it?+

Usually we keep the integration and rebuild the record underneath it. The gateway calls are rarely the problem. Every build starts with a fixed-fee Blueprint: an engineer reads your real systems and writes the plan, with a fixed price for each milestone rather than a guess. The fee is credited in full against the build, and if the plan isn't one you'd act on, you don't pay for it. It ends in a fixed price rather than a range, and scoping calls before it are free. The first 2 months of support and maintenance are free, with every build.

By , CEO, HashlogicsUpdated
Start

Let’s deploy working AI into your business.

We build AI agents and automation, ship them into the tools you already run, then stay on under an agreed service level. A senior engineer reads every brief, and your call gets scheduled within 24 hours.

What happens next

  1. 01

    You send a brief or book a call

    Two minutes, whichever you prefer.

  2. 02

    A senior engineer replies within 24 hours

    Not a sales rep.

  3. 03

    Honest scoping, in writing

    And if we’re not the right fit, we say so.

Abdul Basit, CEO of Hashlogics

“I started Hashlogics because too many teams ship a demo, get paid, and disappear. We build to a standard we’d run ourselves — and we stay to keep it running.”

Abdul Basit · CEO · a direct line

Not ready to talk? Take the checklist.

12 questions to ask any AI agency before you sign. They separate a demo shop from a team that ships to production.

Get the checklist

Free · no newsletter