RevKeenDocs

Schedule a one-off Direct Debit collection

Schedules a one-off Bacs collection against an active mandate for an invoice or payment link. BACS is not real-time: the collection settles 3–5 working days after submission, the payer receives the regulatory advance notice first, and nothing is marked paid until the bureau confirms collection. Idempotent per source: retrying with the same sourceId returns the existing schedule instead of collecting twice.


Related endpoints

  • POST /mandates — Create a Direct Debit mandate
  • GET /mandates — List Direct Debit mandates
  • GET /mandates/{id} — Retrieve a Direct Debit mandate
  • POST /mandates/{id}/cancel — Cancel a Direct Debit mandate
  • POST /mandates/{id}/suspend — Suspend a Direct Debit mandate
  • POST /mandates/{id}/reinstate — Reinstate a suspended Direct Debit mandate

Common errors

  • 400 invalid_request — malformed payload or failed validation.
  • 401 unauthenticated — missing, malformed, or revoked API key.
  • 403 permission_denied — key lacks the required scope, or the resource belongs to a different merchant.
  • 404 resource_missing — the referenced resource does not exist or is not visible to your key.
  • 409 conflict — Idempotency-Key collision with a different body, or a concurrent state-transition conflict.
  • 422 unprocessable_entity — business-rule failure (for example, refunding more than the original charge).

Idempotency

Pass an Idempotency-Key header (UUID v4 recommended) to make retries safe. Keys are valid for 24 hours; see the idempotency guide.

POST
/mandates/{id}/collections
x-api-key<token>

Your RevKeen API key (powered by Unkey). Get it from Dashboard > Settings > API Keys. Use rk_sandbox_* for test mode and rk_live_* for production.

In: header

Path Parameters

id*string

Mandate ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://api.revkeen.com/v2/mandates/string/collections" \  -H "x-api-key: $REVKEEN_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "amountMinor": 2500,    "currency": "GBP",    "sourceType": "invoice",    "sourceId": "00000000-0000-0000-0000-000000000000",    "requestedCollectionDate": "2026-07-01"  }'
{
  "data": {
    "id": "string",
    "mandate_id": "string",
    "lz_schedule_id": "string",
    "amount_minor": 0,
    "currency": "GBP",
    "source_type": "string",
    "source_id": "string",
    "status": "scheduled",
    "collection_date": "string",
    "notice_date": "string",
    "submission_date": "string",
    "already_scheduled": true
  }
}
{
  "data": {
    "id": "string",
    "mandate_id": "string",
    "lz_schedule_id": "string",
    "amount_minor": 0,
    "currency": "GBP",
    "source_type": "string",
    "source_id": "string",
    "status": "scheduled",
    "collection_date": "string",
    "notice_date": "string",
    "submission_date": "string",
    "already_scheduled": true
  }
}
Empty
Empty
Empty
Empty
Empty
Empty
Empty