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

  • AuthenticationAuthorization: Bearer sk_... on every request. Authentication failures are always an opaque 401.
  • Idempotency — the Idempotency-Key header is required on every POST. Retrying with the same key returns the original resource with 200 instead of creating a duplicate. Use a stable identifier from your system (an import batch id, a user action id).
  • Errors — RFC 7807 application/problem+json with type, title, detail, and request_id. Include request_id when 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.