Billing security

Billing security: PCI DSS SAQ-A scope, a ledger and an audit log

Card numbers never reach our servers, so your PCI DSS scope stays at SAQ-A. Money is recorded in an append-only ledger, every change has a name next to it in the audit log, and test data can never touch live.

An audit log entry records a subscription cancelled from the dashboard by a named team member; card numbers never reach our servers, which keeps PCI DSS scope at SAQ-A; test and live are kept apart.An audit log entry records a subscription cancelled from the dashboard by a named team member; card numbers never reach our servers, which keeps PCI DSS scope at SAQ-A; test and live are kept apart.

No card numbers on our servers, and money in an append-only ledger

Finance, auditors and your security review ask the same three questions: where are the cards, can the numbers change, and who did what. Here are the answers.

Card numbers never reach our servers

Card details go from the browser to your gateway, so card-data scope stays at PCI DSS SAQ-A.

Five roles for your team

Owner, Admin, Manager, Ops and Developer. Each person gets what their job needs.

An append-only ledger

Money is recorded in an append-only, double-entry ledger. A correction is a new entry.

PCI DSS SAQ-A

Card data stays with your gateway, so your PCI scope stays at SAQ-A

Card numbers go from your customer's browser straight to your payment gateway. They never reach our servers or yours, so card-data scope stays at PCI DSS SAQ-A.

  • No card numbers storedOur database holds the gateway's reference, the last four digits and the expiry date.
  • 3-D Secure on the pageWhen the bank asks for authentication, the customer completes it on the checkout or portal page.
  • Single-use portal linksA portal link works once and expires an hour after it is made.
  • Gateway keys encryptedYour gateway credentials are encrypted at rest and never returned through the API.

An append-only ledger and invoices that stay fixed

Finance can trust a number when nothing behind it can be edited after the fact.

  • Append-only ledgerBalances come from double-entry records. A correction is a new entry; nothing is edited or deleted.
  • Issued invoices are fixedAmounts on a posted invoice never change. A correction is a credit note with its own reason.
  • A timeout is not a declineWhen a gateway answer is lost, the payment stays pending until the gateway confirms what happened.
An append-only ledger: two invoices, a payment and a ₹500.00 credit note leave ₹3,038.82 owed.An append-only ledger: two invoices, a payment and a ₹500.00 credit note leave ₹3,038.82 owed.

Access control

Five roles, passkeys and two-factor sign-in for your team

Each person gets their own login, with a role and a second factor.

  • Five rolesGive each person what their job needs. The same person can hold a different role in each organization.
  • PasskeysSign in with a passkey, with no email or password. A passkey counts as a second factor.
  • Two-factor sign-inAn authenticator app or a passkey, with recovery codes for the day a phone is lost.
  • Required for everyoneAdmins can require two-factor sign-in for the whole organization.
  • Sessions you can seeList the browsers signed in to your account and sign out any of them. A password reset signs out all of them.
  • Google sign-inMatched on the Google account itself, not on an email address someone could later take over.

An audit log of who changed what, with the values before and after

The audit log is append-only. It covers changes made in the dashboard and through the API, across the organization and in each business.

  • The person or the keyDashboard changes name the signed-in person. API changes name the key that made them. A change made through Billy names the member, via Billy.
  • Before and afterEach entry keeps the changed values, so you can see what a setting was before.
  • Gateway logs tooEvery call to your gateway and its response, so a missed charge has an answer.
  • Signed webhooksHMAC-SHA256 over the raw body. Rotate the signing secret at any time.

AI assistant

Billy reads only what your role allows, and changes nothing without a click

Billy is the AI assistant in the dashboard. It reads through our API with each member's own sign-in. An owner or admin decides if Billy can prepare changes at all.

  • The member's permissionsEach look-up goes through the API with the member's sign-in. Billy never has more access than the member.
  • Private conversationsA member's conversations are their own. No other member sees them.
  • Screenshots are images onlyPNG, JPEG or WebP. Deleted with the conversation, and in all cases after 90 days.
  • Changes need a clickOff until an owner or admin turns them on. Money changes need a second switch and a second confirmation.
  • Your choice of modelOn Cloud, Billy uses our AI model provider, or yours when you add your own key.
  • An owner can turn it offFor the whole organization, in Settings → Billy. AI tools that you connect through MCP are read-only.

Keys and tokens

Read-only API keys, keys for each mode, and tokens stored as hashes

Each key works in one mode, with one scope, and can be withdrawn. Test businesses email only your own team, so a rehearsal never reaches a real customer.

  • Read-only API keysA key with read scope can see everything and change nothing. Give it to reporting jobs.
  • Test, live or bothA key is issued for one mode. A test key cannot reach live data, by id or by mistake.
  • Stored as hashesAPI keys and portal and checkout tokens are stored hashed. The plain value is shown once.
  • Gateway keys encryptedYour gateway credentials are encrypted at rest and never returned through the API.

Or keep it all on your own servers

The engine is open source. Run it in your own infrastructure with every feature, and your billing data never leaves it.

What happens to a card, step by step

  1. Step 1

    Typed in the browser

    The customer enters the card on a field your gateway hosts.

  2. Step 2

    Stored by your gateway

    Your gateway keeps the card and returns a reference.

  3. Step 3

    We keep the reference

    With the last four digits and the expiry. Never the number.

  4. Step 4

    Charged by reference

    Each renewal tells your gateway which saved card to charge.

Billing security questions

No. Card details go from your customer's browser to your payment gateway, which stores them. We keep a reference to the saved card and its last four digits, never the number.

Have a security review to run?

Tell us what your team needs to see, and we will walk them through how it works.