Bulk Data Reconciliation

👍

Scopes required: Data_BookingItem, Data_BookingPayment (or Reporting API full access). Bulk exports additionally need Reporting_BulkDataExport and a BulkExport webhook.

Daily reconciliation with the Data API

Pull booking items and payments modified in your reconciliation window:

curl "https://api.roller.app/data/bookingitems?startDate=2026-06-10T00:00:00&endDate=2026-06-11T00:00:00&pageNumber=1&pageSize=500" \
  -H "Authorization: Bearer $TOKEN"

Responses are paginated (max pageSize is 500):

{
  "currentPage": 1,
  "totalPages": 4,
  "totalItems": 1834,
  "itemsPerPage": 500,
  "items": [ ... ]
}

Iterate pageNumber until currentPage == totalPages. Match records to your marketplace orders via booking reference / external ID, and compare totals and payment records (/data/bookingpayments).

Date parameters are interpreted in the venue's timezone and data is returned in UTC; send the header TimeZone-Designators: Offset to receive venue-local timestamps instead.

The Data API allows 120 requests/minute per venue — schedule reconciliation jobs accordingly.

Large windows: bulk exports

For historical backfills, request an asynchronous export instead of paging through months of data:

  1. Ensure a BulkExport webhook is configured — the export file is delivered there.
  2. Queue the export:
curl -X POST https://api.roller.app/reporting/bulk \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "exportType": "BookingItems", "startDate": "2026-01-01T00:00:00", "endDate": "2026-06-01T00:00:00" }'
  1. The API responds 200 OK immediately; when the export completes, your BulkExport webhook receives the file location.

Available export types: RevenueEntries, Customers, Attendance, Payments, MembershipRedemptions, MembershipStatuses, MembershipCredits, Tickets, Giftcards, BookingItems, PosTillReconciliations, SignedWaivers, BookingSignedWaivers, AuditLog.

🚧

One bulk export per data set may be requested per ~6-hour window (429 otherwise). Revenue activity exports (POST /reporting/bulk/revenue-activity) are limited to one per 24 hours.

Auditing disputed bookings

For disputes, pull the booking's full change history:

curl "https://api.roller.app/reporting/bookings/audit-logs?startDate=2026-06-10T00:00:00&endDate=2026-06-10T23:59:59" \
  -H "Authorization: Bearer $TOKEN"

Scope: Data_BookingAuditLog. The window is limited to 1 day per request; page with the returned paginationToken.


Did this page help you?