1. Mandates
Kobble
  • Introduction
  • API Fundamentals
    • Idempotency
    • Rate Limits
    • Healthcheck
      GET
  • Authorization
    • Authorization
    • Get access token
      POST
  • Beneficiaries
    • List all beneficiaries
      GET
    • Get beneficiary by ID
      GET
    • Create beneficiary
      POST
    • Create Payid beneficiary
      POST
    • Update beneficiary
      PATCH
  • Cards
    • Cards API
    • Card Creation Flow — Developer Guide & Onboarding
    • Get all cards
      GET
    • Create a new card
      POST
    • Get card by ID
      GET
    • Update card status
      PATCH
    • Replace or renew card
      POST
    • Generate card secret
      POST
    • Generate MeaWallet widget session token
      POST
  • Card Programs
    • Card Programs API
    • Get all programs
      GET
    • Create a new program
      POST
    • Get program by ID
      GET
  • Clients
    • Clients API
    • Get all clients
    • Get client by ID
    • Create a new client
    • Update client status
  • Endusers
    • Endusers API
    • Usage of Metadata on Endusers
    • Get all endusers
    • Create a new enduser
    • Get enduser by ID
    • Update enduser
    • Create a stakeholder
    • List stakeholders
    • Update stakeholder
  • Transactions
    • Transactions API
    • Get all transactions
    • Create a transaction
    • Get transaction by ID
    • Create manual credit transaction
    • Create manual debit transaction
  • Wallets
    • Wallets API
    • Get all wallets
    • Create a new wallet
    • Get wallet by ID
    • Update wallet
  • Relays
    • Relays API
    • Create subscription
  • Webhooks
    • Webhooks API
    • Webhook Signature Verification
    • Create a webhook
    • Report completed
    • Get all webhooks
    • Delete a webhook
  • Wallet Statements
    • Request a wallet statement
    • List wallet statements
    • Get a wallet statement
    • Get a wallet statement download URL
  • Card Art
    • Get a card art upload URL
    • Register a card art
    • List card arts
    • Get a card art
    • Update a card art
    • Activate a card art
    • Archive a card art
  • Verifications
    • List verifications for a subject
    • Create a verification
    • Get verification by ID
    • Get a Sum Sub SDK session token
    • Record a client-asserted outcome
  • Transaction Documents
    • Request a presigned upload for a supporting document
    • List the supporting documents on a transaction
  • Mandates
    • List mandates
      GET
    • Create mandate
      POST
    • Get mandate by ID
      GET
    • Update mandate
      PATCH
  • Schemas
    • Schemas
    • CardWidgetSessionTokenResponse
    • 202 Accepted
    • Webhook
    • 201 Created
    • Relay
    • Create Beneficiary with bank details
    • Client
    • Beneficiary
    • Card
    • CardCreateInputDto
    • CardStatusUpdateDto
    • CardRenewReplaceInputDto
    • Program
    • MetadataKobbleDebit1
    • ProgramCreateInputDto
    • Person
    • Company
    • Enduser
    • Enduser Create Person Input
    • Enduser Create Company Input
    • Metadata
    • Enduser Create Input DTO
    • Transaction
    • TransactionCreateManualCreditInputDto
    • TransactionDocumentType
    • TransactionDocumentStatus
    • TransactionDocumentCreateInput
    • WalletUpdateInputDto
    • TransactionDocumentUpload
    • WalletStatement
    • TransactionDocument
    • TransactionCreateInputDto
    • Wallet
    • ReportCompletedEntity
    • Mandate
    • WalletCreateInputDto
    • ReportCompletedNotification
    • CardArt
    • CardArtDetail
    • WebhookNotification
    • CardArtUploadUrlInput
    • CardArtUploadUrlResponse
    • CardArtCreateInput
    • CardArtPatchInput
    • Error
    • RelayCreateResponse
    • ScreeningSummary
    • Verification
    • VerificationPartyLink
    • VerificationSessionToken
    • Address
    • Stakeholder
    • StakeholderCreateInput
    • StakeholderUpdateInput
  1. Mandates

Create mandate

Developing
POST
/customers/v1/transaction-mandates
In development. Direct debit is available in sandbox for integration testing and is not yet available in production. Request and response formats are stable; wallet balance handling for direct debits is being finalised in sandbox.
Create a direct debit mandate: the limits within which you may debit one payer. Requires the client/write or administrator/write OAuth scope.
You must hold the payer's Direct Debit Request authority before debiting them. The mandate records the limits only and is not tied to a payer bank account, so create one mandate per payer agreement and always debit that payer's beneficiary with it.
The mandate is created ACTIVE, in AUD, with last_iteration 0. Unknown body properties are rejected with 400.
Schedule. For NON_RECURRING the debit is due from starts_at. For every other frequency the first debit is due one period AFTER starts_at, and each later debit one period after the previous debit's date. Example: a MONTHLY mandate starting 1 March allows its first debit from 1 April. Set starts_at one period before the first collection date. NON_RECURRING does not itself cap the count; set max_iterations to 1 for a one-off debit.
See the Direct debit guide for the end-to-end flow.

Request

Header Params

Body Params application/json

Example
{
    "starts_at": "2026-10-12",
    "expires_at": "2027-10-12",
    "frequency": "MONTHLY",
    "max_amount": 100,
    "max_iterations": 12,
    "metadata": {
        "payer_reference": "MEMBER-20931"
    }
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location '/customers/v1/transaction-mandates' \
--header 'Idempotency-Key: {{idempotency-key}}' \
--header 'x-client-id;' \
--header 'Content-Type: application/json' \
--data '{
    "starts_at": "2026-10-12",
    "expires_at": "2027-10-12",
    "frequency": "MONTHLY",
    "max_amount": 100,
    "max_iterations": 12,
    "metadata": {
        "payer_reference": "MEMBER-20931"
    }
}'

Responses

🟢201Created
application/json
Mandate created, ACTIVE.
Bodyapplication/json

Example
{
    "id": "5d1c9a7e-2b4f-4e8a-9c3d-7f6a1b2e8d40",
    "owner": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "created_at": "2026-10-12T02:41:07.512Z",
    "updated_at": "2026-10-12T02:41:07.512Z",
    "starts_at": "2026-10-12T00:00:00.000Z",
    "expires_at": "2027-10-12T00:00:00.000Z",
    "frequency": "MONTHLY",
    "max_amount": 100,
    "max_iterations": 12,
    "last_transaction_id": null,
    "last_transaction_date": null,
    "last_transaction_status": null,
    "last_transaction_amount": 0,
    "last_iteration": 0,
    "asset_class": "CURRENCY",
    "asset": "AUD",
    "status": "ACTIVE",
    "metadata": {
        "payer_reference": "MEMBER-20931"
    }
}
🟢202Accepted
🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
Modified at 2026-10-15 05:41:15
Previous
List mandates
Next
Get mandate by ID
Built with