Overview
Rather than fetching all merchants on every sync, useupdated_since to pull only records that changed since your last sync. This reduces API calls and keeps you well within rate limits.
Full sync (first run)
On your first sync, page through all merchants:Incremental sync (subsequent runs)
Passupdated_since with the as_of timestamp from your last sync:
Recommended schedule
Incremental syncs typically return a small fraction of your portfolio, so even hourly syncs stay well within the 120 req/min rate limit.
Tips
- Store
as_offrom each sync response as your nextupdated_sincevalue - Upsert, don’t replace — Incremental results contain only changed records
- Filter by status — Use
?status=activeif you only care about active merchants - Handle pagination — Even incremental results can span multiple pages after bulk updates