FrancodesystemsFran<code>systems
PaymentsCustom integration

Holded SumUp integration

SumUp (local retail POS) connected to Holded for automatic reconciliation.

HoldedHolded
SumUpSumUp

Implementation time · 4-7 días laborables

Diagnosis

The problem

SumUp has conquered the local retail POS market in Spain: cheap readers (29-99 EUR), no monthly fees, an intuitive app. For a hair salon, restaurant, workshop, self-employed professional or freelancer in general, it is the obvious choice. But every payment stays in SumUp with no automatic reflection in Holded: someone does a manual reconciliation every night, looks up the daily or weekly SumUp deposit in the bank, and matches it by hand against the day's sales. For volumes of 100 to 500 payments a month this consumes hours every week, and the self-employed put it off until the quarterly close with the advisory firm shouting.

Proposal

The solution

SumUp payments (Air, Solo, 3G, Terminal, Online) reflected in Holded as invoices with the correct VAT and series. Automatic reconciliation with the daily or weekly bank deposit SumUp makes to your account. It supports the SumUp Business Account if you have the account integrated. It is the gateway preferred by many local shops, restaurants and professionals for its cheap hardware with no lock-in, but its output to Holded was until now a gap. We close it.

Scope

What we automate

  • SumUp payment (POS or online) to a Holded invoice with the correct VAT
  • Daily/weekly SumUp bank deposit reconciled with a group of invoices
  • SumUp refunds to automatic Holded credit notes
  • SumUp fees (% per payment) to an expense entry
  • Multi-account SumUp (several shops/professionals) to separate series
  • Payments with a tip to a separate line on the invoice for reporting
  • SumUp Business Account: integration with bank movements
  • Daily cash close-out to a Holded accounting entry with a VAT breakdown
Who uses it

Real use cases

These are the profiles that most ask us for the HoldedSumUp integration and what they get in the end.

Case 01

Restaurant with SumUp Terminal

Before: Cash close-out every night reconciling SumUp with the till by hand. 30 min/day.

After: Automatic close-out with the correct VAT breakdown. Review only.

Case 02

Self-employed hair salon

Before: Fiscal quarter reconciled against the clock with the advisory firm shouting.

After: Quarter kept up to date. A grateful advisory firm.

Case 03

Independent professional with SumUp Solo at the practice

Before: The day's payments with no reflection in Holded, patients asking for an invoice.

After: Payment to an invoice issued on the spot, sent by email/WhatsApp if they want.

Before / After

What changes exactly

Without the integration

  • Manual nightly reconciliation of SumUp vs Holded
  • Fiscal quarter reconciled against the clock
  • Patients/customers asking for the day's invoice
  • SumUp fees not booked as an expense

With the integration

  • SumUp payment to a Holded invoice in seconds
  • Fiscal quarter kept up to date
  • Invoices sent to the customer automatically
  • Fees booked as an expense entry
Architecture

How we build it

SumUp API plus webhooks (transaction.successful, refund.created, payout.created). A persisted, idempotent queue keyed on the SumUp transaction.id. For bank reconciliation, we use the payouts SumUp makes every N days (configurable) and match them against the corresponding group of invoices in Holded. For self-employed users with little technical infrastructure, we also offer a batch mode (uploading a weekly/monthly exported CSV if the volume is low).

flow.ts
webhook sumup.event
queue.enqueue(jobId)
worker.handle() // idempotent
holded.api.call() // retries with backoff
log.emit({ status: 'ok' })
FAQ

Frequently asked questions

What SumUp hardware is supported?

Any SumUp (Air, Plus, Solo, 3G, Solo Lite, Terminal). The integration works at the SumUp account level, not at the hardware level. Any payment in the account goes into Holded.

SumUp Online (payment link)?

Supported. The Payment Links you send by email or WhatsApp generate a Holded invoice when paid, exactly like the physical POS.

What about the SumUp Business Account?

If you have the SumUp bank account integrated, we can read the movements for finer reconciliation. It is not required: with the basic SumUp API we already have almost everything.

Multi-account SumUp?

Yes. If you have several shops or a group with several professionals, each SumUp account can be mapped to its own series in Holded.

What about the self-employed without much technical infrastructure?

For very simple cases, we offer a batch mode (uploading a monthly CSV at close) with no need for webhooks or a server. A tradeoff by feature: less automation but enough for small self-employed businesses.

How long does it take and how much does it cost?

Between 4 and 7 business days. The batch CSV version is cheaper (from 900 EUR). The full version with webhooks from 1500 EUR.

Shall we talk about your SumUp integration?

A 30-minute call, no strings. You leave with scope and a price.