Introduction
The Roster Partner API lets your platform offer payroll-deduction giving to the churches you serve. You import your churches, hand each donor a hosted enrollment link, and follow the results through webhooks and an event feed — Roster runs the donor flow, the payroll connection, and the money movement end to end.
Environments
| Environment | Base URL | Keys |
|---|---|---|
| Sandbox | https://api.sandbox.rostergiving.com |
sk_test_... |
| Production | https://api.rostergiving.com |
sk_live_... |
Test keys only exist in the sandbox; live keys only in production. A key is shown once at issuance — store it in your secret manager.
Conventions
-
Authentication —
Authorization: Bearer sk_...on every request. Authentication failures are always an opaque401. -
Idempotency — the
Idempotency-Keyheader is required on every POST. Retrying with the same key returns the original resource with200instead of creating a duplicate. Use a stable identifier from your system (an import batch id, a user action id). -
Errors — RFC 7807
application/problem+jsonwithtype,title,detail, andrequest_id. Includerequest_idwhen contacting support. -
No donor PII — enrollments and events expose status and configured
values only. Donor phone numbers travel one way (into
POST /v1/donor_sessions) and are never readable back.
The integration in one paragraph
Import churches (POST /v1/churches/import), then for each donor create a
session (POST /v1/donor_sessions) and send them to the returned url —
a Roster-hosted flow where the donor verifies their phone, consents, and
connects payroll. You observe outcomes on your webhook endpoint
(enrollment.created, enrollment.activated, …) and reconcile with
GET /v1/events. The redirect back to your site is a courtesy, never the
result: trust the webhook and the feed, not the redirect.
Ready to try it? Follow the sandbox certification script — it is the exact checklist we use to certify a partner.