Every Add-On, Auditable
Adjustments

Every Add-On, Auditable

Tips, surcharges, insurance fees, and any other configurable add-on amount on a transaction lands in the Adjustments ledger. One endpoint to query, one date range, one response shape. Finance teams get the granular reconciliation surface they need without hand-rolling extraction logic against transaction streams.

The Audit Surface for Add-Ons

Tips, surcharges, insurance, and similar transaction add-ons are configured through the relevant feature APIs — Tips, Surcharges, Payment Methods, and so on. The Adjustments API is the audit and reconciliation surface beneath those features. One endpoint to pull every add-on captured against a merchant or store within any date range.

Designed for the finance and reconciliation pipelines that need adjustment-level granularity — payroll separating tips from base sales, compliance teams auditing surcharge totals, regulated verticals tracking insurance and statutory fees as discrete records.

Configuration is elsewhere — this is the ledger

You don't create adjustments through this API. You configure tipping through the Tips API, surcharges through the merchant config, and so on. Adjustments captures what those configurations produce — making them visible, queryable, and reconcilable.

How Adjustments Work

1

Adjustments are captured automatically

When a transaction includes a tip, a surcharge, an insurance fee, or any other configured add-on, Surfboard records it as an adjustment alongside the base order. Configuration happens through the relevant feature APIs (Tips, Surcharges, etc.) — adjustments are the audit trail.
2

Query by merchant or store, by date range

Pull every adjustment for a merchant or a single store within any date window. Type, amount, and adjustment ID returned as structured JSON, paginated for large windows.
                          GET /adjustments/:id?startDate=2026-04-01&endDate=2026-04-30

// Response
{
  "status": "SUCCESS",
  "data": [
    { "adjustmentId": "...", "adjustmentType": "tips", "amount": "100" },
    { "adjustmentId": "...", "adjustmentType": "surcharge", "amount": "250" }
  ]
}
                      
3

Reconcile against settlements

Adjustments combine with the Reporting API for full-fidelity reconciliation. Every line of every settlement traces back to its base order plus the adjustments that contributed to the final amount.

What you can build

An adjustments ledger removes a category of pain from finance and compliance workflows. Here's where it gets used most.

1. Tip Reconciliation

Service-driven verticals need to know exactly how much of a settlement was tip vs. base bill. Filter adjustments by adjustmentType: "tips" to extract tip totals per merchant, per store, per period.

Critical for hospitality payroll, server reconciliation, and tax reporting in markets where tips are taxed separately.

2. Surcharge Tracking

Card-acceptance surcharges, low-amount fees, and partner-defined transaction add-ons are all captured as adjustments. Pull a date range and you have every surcharge collected — useful for compliance reviews and merchant statements that itemize fees.

3. Insurance & Regulated Fees

Verticals like vehicle rental, healthcare, and travel attach mandatory insurance or regulated fees to transactions. Adjustments capture these as discrete records — auditable, reportable, separable from the base sale.

Useful for:

  • Travel platforms with optional insurance
  • Healthcare providers with co-pay structures
  • Rental verticals with damage/insurance riders

4. Per-Merchant or Per-Store Visibility

The endpoint accepts both merchant and store IDs. Query a merchant for portfolio-wide totals, a store for location-level breakdowns. Same response shape, same pagination, same filtering.

5. Date Range Queries

Required startDate and endDate parameters scope the query precisely. Build daily, weekly, monthly, or custom-period reports against the same endpoint without changing the integration.

6. Composes with the Rest of the Platform

Adjustments are an audit surface, not a configuration surface. Tips are configured through the Tips API. Surcharges are configured through merchant settings. Adjustments simply capture what those configurations produced — making them visible, queryable, and reconcilable through one consistent endpoint.

One endpoint, two scopes

The :id path parameter accepts both merchant IDs and store IDs. Query at the level that fits your reporting need — portfolio-wide totals at the merchant level, location-level breakdowns at the store level. Same response shape either way.

Required date range parameters keep queries scoped and predictable. Pagination handles large windows without changing the integration shape.

Pull your first adjustments report

One GET. Required date range. Pagination on large windows. Response carries adjustment ID, type, and amount per record.

                            // Pull every tip adjustment for a merchant in April
GET /adjustments/:merchantId?startDate=2026-04-01&endDate=2026-04-30

// Filter or aggregate by type in your own pipeline
{
  "status": "SUCCESS",
  "data": [
    { "adjustmentId": "81efdbe975ebc800ff", "adjustmentType": "tips", "amount": "100" },
    { "adjustmentId": "81efdbe975ebc801aa", "adjustmentType": "tips", "amount": "250" },
    { "adjustmentId": "81efdbe975ebc802bb", "adjustmentType": "surcharge", "amount": "50" }
  ]
}