Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: gateway Direct Debits API
version: '1.0'
servers:
- url: https://gateway.pmnts-sandbox.io/v1.0
security:
- sec0: []
tags:
- name: Direct Debits
paths:
/direct_debits:
post:
summary: Create a direct debit
description: ''
operationId: create-a-direct-debit
parameters:
- name: Content-Type
in: header
schema:
type: string
default: application/json
requestBody:
content:
application/json:
schema:
type: object
required:
- description
- amount
- bsb
- account_name
- account_number
properties:
description:
type: string
description: Must be unique. Max 18 characters, allowed chars are A-Z, 0-9, period, hyphen, ampersand, and underscore. It is recommended you make this descriptive for your customer - e.g. Invoice ABCD123.
amount:
type: number
description: Amount. Minimum 0.01, positive only.
format: float
bsb:
type: string
description: 'The source account''s BSB number. Format: `###-###`'
account_name:
type: string
description: The source account name. Max 32 characters.
account_number:
type: string
description: The source account number. Max 9 digits.
date:
type: string
description: Date of the direct debit. Optional but recommended. Defaults to the next processing period (current day if before 17:00, next day if after). Must be in the future.
format: date
reference:
type: string
description: Unique reference
metadata:
type: object
description: Metadata of the direct debit
properties: {}
bank_account:
type: string
description: The Fat Zebra bank account ID to be used in place of `account_name`, `account_number`, and `bsb`. If `bank_account` is supplied, the other attributes should be omitted.
responses:
'201':
description: '201'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": true,\n \"response\": {\n \"id\": \"071-DD-L4M3SN0E\",\n \"amount\": 42.0,\n \"bsb\": \"123-123\",\n \"account_number\": \"012345678\",\n \"account_name\": \"Test\",\n \"description\": \"Confirmation\",\n \"reference\": \"071-DD-L4M3SN0E\",\n \"date\": \"2018-09-14\",\n \"process_date\": null,\n \"status\": \"New\",\n \"result\": null,\n \"metadata\": null\n },\n \"errors\": [],\n \"test\": true\n}"
schema:
type: object
properties:
successful:
type: boolean
example: true
default: true
response:
type: object
properties:
id:
type: string
example: 071-DD-L4M3SN0E
amount:
type: integer
example: 42
default: 0
bsb:
type: string
example: 123-123
account_number:
type: string
example: 012345678
account_name:
type: string
example: Test
description:
type: string
example: Confirmation
reference:
type: string
example: 071-DD-L4M3SN0E
date:
type: string
example: '2018-09-14'
process_date: {}
status:
type: string
example: New
result: {}
metadata: {}
errors:
type: array
test:
type: boolean
example: true
default: true
'422':
description: '422'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": false,\n \"response\": {},\n \"errors\": [\n \"Could not find bank account 071-B-ABC123\"\n ],\n \"test\": true\n}"
schema:
type: object
properties:
successful:
type: boolean
example: false
default: true
response:
type: object
properties: {}
errors:
type: array
items:
type: string
example: Could not find bank account 071-B-ABC123
test:
type: boolean
example: true
default: true
deprecated: false
x-readme:
code-samples:
- language: curl
code: "curl https://gateway.pmnts-sandbox.io/v1.0/direct_debits -u TEST:TEST -d'\n { \n \"description\":\"Confirmation\", \n \"amount\":42, \n \"bsb\":\"123-123\", \n \"account_name\":\"Test\", \n \"account_number\":\"012345678\"\n }'"
- language: ruby
code: "FatZebra::DirectDebit.create(\n description: 'Confirmation',\n amount: 42,\n bsb: '123-123',\n account_name: 'Test',\n account_number: '012345678'\n)"
samples-languages:
- curl
- ruby
tags:
- Direct Debits
get:
summary: List direct debits
description: ''
operationId: list-direct-debits
parameters:
- name: Content-Type
in: header
schema:
type: string
default: application/json
- name: offset
in: query
description: Page number to return
schema:
type: integer
format: int32
default: 1
- name: limit
in: query
description: Max number of results to return
schema:
type: integer
format: int32
default: 10
- name: from
in: query
description: Lower bound for the time at which the direct debit was created
schema:
type: string
format: date
- name: to
in: query
description: Upper bound for the time at which the direct debit was created
schema:
type: string
format: date
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": true,\n \"response\": [\n {\n \"id\": \"071-DD-RDOR6I3K\",\n \"amount\": 10,\n \"bsb\": \"083-832\",\n \"account_number\": \"181843123\",\n \"account_name\": \"James Smith\",\n \"description\": \"test\",\n \"reference\": \"RMT1636366033\",\n \"date\": \"2018-09-21\",\n \"process_date\": null,\n \"status\": \"New\",\n \"result\": null,\n \"metadata\": null\n },\n {\n \"id\": \"071-DD-ULX5DGSW\",\n \"amount\": 10,\n \"bsb\": \"083-832\",\n \"account_number\": \"181843123\",\n \"account_name\": \"James Smith\",\n \"description\": \"test\",\n \"reference\": \"RMT1636366032\",\n \"date\": \"2018-09-14\",\n \"process_date\": null,\n \"status\": \"New\",\n \"result\": null,\n \"metadata\": null\n }\n ],\n \"errors\": [],\n \"test\": true,\n \"records\": 2,\n \"total_records\": 16582,\n \"page\": 1,\n \"total_pages\": 8291\n}"
schema:
type: object
properties:
successful:
type: boolean
example: true
default: true
response:
type: array
items:
type: object
properties:
id:
type: string
example: 071-DD-RDOR6I3K
amount:
type: integer
example: 10
default: 0
bsb:
type: string
example: 083-832
account_number:
type: string
example: '181843123'
account_name:
type: string
example: James Smith
description:
type: string
example: test
reference:
type: string
example: RMT1636366033
date:
type: string
example: '2018-09-21'
process_date: {}
status:
type: string
example: New
result: {}
metadata: {}
errors:
type: array
test:
type: boolean
example: true
default: true
records:
type: integer
example: 2
default: 0
total_records:
type: integer
example: 16582
default: 0
page:
type: integer
example: 1
default: 0
total_pages:
type: integer
example: 8291
default: 0
deprecated: false
x-readme:
code-samples:
- language: curl
code: curl 'https://gateway.pmnts-sandbox.io/v1.0/direct_debits?limit=2&offset=1' -u TEST:TEST
- language: ruby
code: FatZebra::DirectDebit.search
samples-languages:
- curl
- ruby
tags:
- Direct Debits
/direct_debits/{id}:
put:
summary: Update a direct debit
description: A direct debit can be updated if it has a status of `New`. Once direct debits have been submitted to the financial institution, they are locked and can only be updated by the Fat Zebra system.
operationId: update-a-direct-debit
parameters:
- name: id
in: path
description: ID of the direct debit
schema:
type: string
required: true
- name: Content-Type
in: header
schema:
type: string
default: application/json
requestBody:
content:
application/json:
schema:
type: object
properties:
description:
type: string
description: Max 18 characters, allowed chars are A-Z, 0-9, period, hyphen, ampersand, and underscore.
amount:
type: number
description: Amount. Minimum 0.01, positive only.
format: float
bsb:
type: string
description: 'The source account''s BSB number. Format: `###-###`'
account_name:
type: string
description: The source account name. Max 32 characters.
account_number:
type: string
description: The source account number. Max 9 digits.
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": true,\n \"response\": {\n \"id\": \"071-DD-L4M3SN0E\",\n \"amount\": 42.0,\n \"bsb\": \"123-123\",\n \"account_number\": \"012345678\",\n \"account_name\": \"Test 2\",\n \"description\": \"Confirmation\",\n \"reference\": \"071-DD-L4M3SN0E\",\n \"date\": \"2018-09-14\",\n \"process_date\": null,\n \"status\": \"New\",\n \"result\": null,\n \"metadata\": null\n },\n \"errors\": [],\n \"test\": true\n}"
schema:
type: object
properties:
successful:
type: boolean
example: true
default: true
response:
type: object
properties:
id:
type: string
example: 071-DD-L4M3SN0E
amount:
type: integer
example: 42
default: 0
bsb:
type: string
example: 123-123
account_number:
type: string
example: 012345678
account_name:
type: string
example: Test 2
description:
type: string
example: Confirmation
reference:
type: string
example: 071-DD-L4M3SN0E
date:
type: string
example: '2018-09-14'
process_date: {}
status:
type: string
example: New
result: {}
metadata: {}
errors:
type: array
test:
type: boolean
example: true
default: true
'422':
description: '422'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": false,\n \"response\": {},\n \"errors\": [\n \"Could not find bank account unknown\"\n ]\n}"
schema:
type: object
properties:
successful:
type: boolean
example: false
default: true
response:
type: object
properties: {}
errors:
type: array
items:
type: string
example: Could not find bank account unknown
deprecated: false
x-readme:
code-samples:
- language: curl
code: "curl https://gateway.pmnts-sandbox.io/v1.0/direct_debits/071-DD-L4M3SN0E -X PUT -u TEST:TEST -d'\n {\n \"account_name\":\"Test\"\n }'"
- language: ruby
code: "FatZebra::DirectDebit.update(\n \"071-DD-FYC4V7W4\",\n account_name: 'Test 2'\n)"
samples-languages:
- curl
- ruby
tags:
- Direct Debits
delete:
summary: Delete a direct debit
description: A direct debit can be deleted if it has a status of `New`. Deleting a direct debit will update its status to `Deleted`, however the data will not be removed from Fat Zebra's systems.
operationId: delete-a-direct-debit
parameters:
- name: id
in: path
description: ID of the direct debit
schema:
type: string
required: true
- name: Content-Type
in: header
schema:
type: string
default: application/json
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": true,\n \"response\": {\n \"id\": \"071-DD-OPKL11XK\",\n \"amount\": 42,\n \"bsb\": \"123-123\",\n \"account_number\": \"012345678\",\n \"account_name\": \"Test\",\n \"description\": \"Confirmation\",\n \"reference\": \"071-DD-OPKL11XK\",\n \"date\": \"2018-09-14\",\n \"process_date\": null,\n \"status\": \"Deleted\",\n \"result\": null,\n \"metadata\": null\n },\n \"errors\": [],\n \"test\": true\n}"
schema:
type: object
properties:
successful:
type: boolean
example: true
default: true
response:
type: object
properties:
id:
type: string
example: 071-DD-OPKL11XK
amount:
type: integer
example: 42
default: 0
bsb:
type: string
example: 123-123
account_number:
type: string
example: 012345678
account_name:
type: string
example: Test
description:
type: string
example: Confirmation
reference:
type: string
example: 071-DD-OPKL11XK
date:
type: string
example: '2018-09-14'
process_date: {}
status:
type: string
example: Deleted
result: {}
metadata: {}
errors:
type: array
test:
type: boolean
example: true
default: true
'404':
description: '404'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": false,\n \"response\": null,\n \"errors\": [\n \"Direct Debit 071-DC-ABC123 could not be found.\"\n ],\n \"test\": true\n}"
schema:
type: object
properties:
successful:
type: boolean
example: false
default: true
response: {}
errors:
type: array
items:
type: string
example: Direct Debit 071-DC-ABC123 could not be found.
test:
type: boolean
example: true
default: true
deprecated: false
x-readme:
code-samples:
- language: curl
code: curl https://gateway.pmnts-sandbox.io/v1.0/direct_debits/071-DD-5DYN6M21 -X DELETE -u TEST:TEST
- language: ruby
code: FatZebra::DirectDebit.delete('071-DD-5DYN6M21')
samples-languages:
- curl
- ruby
tags:
- Direct Debits
/direct_debits/{id_or_reference}:
get:
summary: Fetch a direct debit
description: ''
operationId: fetch-a-direct-debit
parameters:
- name: id_or_reference
in: path
description: ID or reference of the direct debit
schema:
type: string
required: true
- name: Content-Type
in: header
schema:
type: string
default: application/json
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": true,\n \"response\": {\n \"id\": \"071-DD-ULX5DGSW\",\n \"amount\": 10,\n \"bsb\": \"083-832\",\n \"account_number\": \"181843123\",\n \"account_name\": \"James Smith\",\n \"description\": \"test\",\n \"reference\": \"RMT1636366032\",\n \"date\": \"2018-09-14\",\n \"process_date\": null,\n \"status\": \"New\",\n \"result\": null,\n \"metadata\": null\n },\n \"errors\": [],\n \"test\": true\n}"
schema:
type: object
properties:
successful:
type: boolean
example: true
default: true
response:
type: object
properties:
id:
type: string
example: 071-DD-ULX5DGSW
amount:
type: integer
example: 10
default: 0
bsb:
type: string
example: 083-832
account_number:
type: string
example: '181843123'
account_name:
type: string
example: James Smith
description:
type: string
example: test
reference:
type: string
example: RMT1636366032
date:
type: string
example: '2018-09-14'
process_date: {}
status:
type: string
example: New
result: {}
metadata: {}
errors:
type: array
test:
type: boolean
example: true
default: true
'404':
description: '404'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": false,\n \"response\": {},\n \"errors\": [\n \"Could not find Direct Entry\"\n ],\n \"test\": true\n}"
schema:
type: object
properties:
successful:
type: boolean
example: false
default: true
response:
type: object
properties: {}
errors:
type: array
items:
type: string
example: Could not find Direct Entry
test:
type: boolean
example: true
default: true
deprecated: false
x-readme:
code-samples:
- language: curl
code: curl https://gateway.pmnts-sandbox.io/v1.0/direct_debits/071-DD-ULX5DGSW -u TEST:TEST
- language: ruby
code: FatZebra::DirectDebit.find('071-DD-5DYN6M21')
samples-languages:
- curl
- ruby
tags:
- Direct Debits
components:
securitySchemes:
sec0:
type: http
scheme: basic
x-readme:
headers: []
explorer-enabled: true
proxy-enabled: true
x-readme-fauxas: true