Simulate a payroll deposit (sandbox only)

Builds a bank deposit webhook, signs it with the sandbox's own secret, and sends it through the same HTTPS edge production uses — the full pipeline runs (verify → normalize → enqueue → reconcile), no real bank involved. The church must belong to the authenticated partner. status_code echoes what the webhook edge answered: a rejection surfaces as-is rather than being masked as success.

Headers
  • Idempotency-Key
    Type: string
    min length:  
    1
    max length:  
    255
    required

    Required on every POST, before any effect. Replays with the same key return the original resource with 200.

Body
required
application/json
  • account_ref
    Type: string
    required

    Simulated bank account reference receiving the credit.

  • amount
    Type: number
    greater than:  
    0
    required

    Deposit amount in dollars; must be exact cents.

  • church_id
    Type: string
    required
  • trace
    Type: string

    Optional trace id; generated when omitted.

Responses
  • application/json
  • application/problem+json
  • application/problem+json
Request Example for post/sandbox/simulate/deposit
curl https://api.sandbox.rostergiving.com/sandbox/simulate/deposit \
  --request POST \
  --header 'Idempotency-Key: ' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "church_id": "",
  "account_ref": "",
  "amount": 1,
  "trace": ""
}'
{
  "status_code": 1,
  "simulated": {
    "event_type": "ach.credit.received",
    "trace": "string",
    "bank_ts": "2026-09-01T19:58:46.877Z"
  }
}