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
| Portfolio size | Sync frequency | Estimated calls/day |
|---|---|---|
| < 1,000 merchants | Every 4 hours | ~6 |
| 1,000–5,000 | Every 2 hours | ~24 |
| 5,000+ | Every hour | ~48 |
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