
Integrations
Taking a payment is the easy part. The complexity is in what surrounds it (refunds, retries, partial states, reconciliation and tax), and that is where billing projects overrun.
Context
Billing errors are visible to customers and to finance simultaneously, which makes them disproportionately expensive to recover from.
Choices
Every choice below has a reason attached. A stack without reasons is a logo wall.
The questions we work through before recommending anything in this area.
Recommending something everywhere is the same as having no opinion.
Where we apply it
Almost certainly not. Hosted payment pages and provider-held tokens give you repeat billing without card data entering your systems, which removes most of the compliance surface.
Because the estimate covers the successful path. Refunds, retries, partial payments, disputes, currency and reconciliation are where the work is, and they are rarely in the original scope.
Taking a payment is the easy part. The complexity is in what surrounds it (refunds, retries, partial states, reconciliation and tax), and that is where billing projects overrun.
Billing errors are visible to customers and to finance simultaneously, which makes them disproportionately expensive to recover from.
Building bespoke subscription logic that an established billing provider already handles; Storing card details, which almost no business of this size has a reason to do; and Custom invoicing where the accounting system already produces compliant documents
Whether the model is one-off, subscription or usage-based; Which system finance treats as authoritative today; and How refunds, failures and partial payments must behave
Card details never touch your systems, which removes the largest part of compliance scope. The trade is less control over the checkout appearance, which is usually worth making.
Payment state read from the provider rather than mirrored in your database. Two systems tracking the same money will disagree, and reconciling them is permanent work.
Connected
Bring the existing system and the constraints around it. We will tell you where this fits, where it would be the wrong tool, and what we would leave exactly as it is.