Simulate the bank confirming an account closure (sandbox only)
After a donor cancels, Roster asks the bank to close the donor's sub-account; the closure itself is a fact the bank confirms later. This simulator plays the bank: it finds the pending closure request for the enrollment and delivers the confirmation through the same production webhook path. Requires a prior cancellation. Once the bank has confirmed the closure, a new request is refused with 400 and nothing is sent.
Headers
- Type: stringIdempotency
- Key min length:1max length:255requiredRequired on every POST, before any effect: 1–255 visible ASCII characters, no spaces. The key belongs to the first body sent with it on this operation for 30 days from the moment that request arrives, including while that request is running and after a
5xxor a timeout. On an operation that creates a resource (POST /v1/churches,POST /v1/churches/import,POST /v1/church_consents,POST /v1/donor_sessions,POST /v1/manage_sessions,POST /v1/refundsandPOST /v1/webhook_endpoints), a key whose request succeeded keeps its body for as long as the resource it created exists. A creation replayed with the same key and body returns the original resource with200and changes nothing; a4xxreleases the key.
Body
- Type: stringchurch
_id requiredRoster identifier of the church this record belongs to.
- Type: stringenrollment
_id requiredIdentifier of the recurring giving arrangement; links its individual donations over time.
Responses
- application/json
- application/problem+json
- application/problem+json
- application/problem+json
- application/problem+json
- application/problem+json
curl https://api.sandbox.rostergiving.com/sandbox/simulate/account-closure \
--request POST \
--header 'Idempotency-Key: ' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"enrollment_id": "",
"church_id": ""
}'
{
"status_code": 1,
"simulated": {
"event_type": "account.closed",
"trace": "string",
"bank_ts": "2026-10-22T14:55:08.128Z"
}
}