openapi: 3.1.0 info: title: Zepto API contact: email: support@zepto.com.au description: Zepto allows you to make, get and manage payments using nothing but bank accounts. version: '1.0' servers: - url: 'https://api.sandbox.zeptopayments.com' description: Sandbox API server - url: 'https://api.zeptopayments.com' description: Production API server tags: - name: Agreements description: > An Agreement is an arrangement between two parties that allows them to agree on terms for which future Payment Requests will be auto-approved. Zepto Agreements are managed on a per Contact basis, and if a Payment Request is sent for an amount that exceeds the terms of the agreement, it will not be created. Please refer to the [What is an Agreement](http://help.zepto.money/articles/3094575-what-is-an-agreement) article in our knowledge base for an overview.
both_parties
query string'
style: form
schema:
type: string
example: party people
- name: other_party_bank_ref
in: query
description: 'Single value, exact match'
style: form
schema:
type: string
example: CT.3a
- name: party_contact_id
in: query
description: 'Single value, exact match. Cannot be combine with both_parties
query string'
style: form
schema:
type: string
example: a67036fc-217e-437a-83f4-89e90724bea0
- name: description
in: query
description: 'Single value, string search'
style: form
schema:
type: string
example: some description
- name: min_amount
in: query
description: 'Cents, single value, exact match'
style: form
schema:
type: integer
example: 500
- name: max_amount
in: query
description: 'Cents, single value, exact match'
style: form
schema:
type: integer
example: 1000
- name: min_created_date
in: query
description: 'Date/time UTC ISO 8601 format, single value, exact match'
style: form
schema:
type: string
format: date-time
example: '2017-05-10T00:00:00Z'
- name: max_created_date
in: query
description: 'Date/time UTC ISO 8601 format, single value, exact match'
style: form
schema:
type: string
format: date-time
example: '2017-06-10T00:00:00Z'
- name: min_matured_date
in: query
description: 'Date/time UTC ISO 8601 format, single value, exact match'
style: form
schema:
type: string
format: date-time
example: '2017-05-10T00:00:00Z'
- name: max_matured_date
in: query
description: 'Date/time UTC ISO 8601 format, single value, exact match'
style: form
schema:
type: string
format: date-time
example: '2017-06-10T00:00:00Z'
- name: min_cleared_date
in: query
description: 'Date/time UTC ISO 8601 format, single value, exact match'
style: form
schema:
type: string
format: date-time
example: '2017-05-10T00:00:00Z'
- name: max_cleared_date
in: query
description: 'Date/time UTC ISO 8601 format, single value, exact match'
style: form
schema:
type: string
format: date-time
example: '2017-06-10T00:00:00Z'
- name: min_status_changed_date
in: query
description: 'Date/time UTC ISO 8601 format, single value, exact match'
style: form
schema:
type: string
format: date-time
example: '2017-05-10T00:00:00Z'
- name: max_status_changed_date
in: query
description: 'Date/time UTC ISO 8601 format, single value, exact match'
style: form
schema:
type: string
format: date-time
example: '2017-06-10T00:00:00Z'
responses:
'200':
description: OK
headers:
Link:
$ref: '#/components/headers/Link'
Per-Page:
$ref: '#/components/headers/Per-Page'
content:
application/json:
schema:
$ref: '#/components/schemas/ListAllTransactionsResponse'
/transfers:
post:
tags:
- Transfers
summary: Add a Transfer
description: >
Use this endpoint when you want to create a Transfer between any 2 of your float/bank accounts.
operationId: AddATransfer
parameters:
- name: 'Idempotency-Key'
in: header
description: 'Idempotency key to support safe retries for 24h'
required: true
schema:
type: string
example: '{unique-uuid-per-transfer}'
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/AddATransferRequest'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/AddATransferResponse'
get:
tags:
- Transfers
summary: List all Transfers (Available soon)
description: ''
operationId: ListAllTransfers
parameters:
- name: page
in: query
description: 'Page of results to return, single value, exact match'
style: form
schema:
type: string
example: '1'
- name: per_page
in: query
description: 'Number of results per page, single value, exact match'
style: form
schema:
type: string
example: '100'
- name: from_bank_account_id
in: query
description: 'Source bank/float account UUID, single value, exact match'
style: form
schema:
type: string
example: 'a79423b2-3827-4cf5-9eda-dc02a298d005'
- name: to_bank_account_id
in: query
description: 'Target bank/float account UUID, single value, exact match'
style: form
schema:
type: string
example: '0921a719-c79d-4ffb-91b6-1b30ab77d14d'
responses:
'200':
description: OK
headers:
Link:
$ref: '#/components/headers/Link'
Per-Page:
$ref: '#/components/headers/Per-Page'
content:
application/json:
schema:
$ref: '#/components/schemas/ListAllTransfersResponse'
'/transfers/{transfer_ref}':
get:
tags:
- Transfers
summary: Get a Transfer (Available soon)
description: Get a single transfer by its reference
operationId: GetATransfer
parameters:
- name: transfer_ref
in: path
description: Transfer reference
required: true
style: simple
schema:
type: string
example: T.11ub
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetATransferResponse'
/user:
get:
tags:
- Users
summary: Get user details
description: ''
operationId: GetUserDetails
parameters: []
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetUserDetailsResponse'
/webhooks:
get:
tags:
- Webhooks
summary: List all webhooks
description: "List all your application's webhook configurations."
operationId: GetWebhooks
parameters: []
responses:
'200':
description: OK
headers:
Link:
$ref: '#/components/headers/Link'
Per-Page:
$ref: '#/components/headers/Per-Page'
content:
application/json:
schema:
$ref: '#/components/schemas/ListAllWebhooksResponse'
'404':
description: Not Found
'/webhooks/{webhook_id}/deliveries':
get:
tags:
- Webhooks
summary: List deliveries for a webhook
description: 'NOTE: Webhook deliveries are stored for 7 days.'
operationId: GetWebhookDeliveries
parameters:
- name: webhook_id
in: path
description: 'Single value, exact match'
required: true
style: simple
schema:
type: string
example: 31918dce-2dc3-405b-8d3c-fd3901b17e9f
- name: ref
in: query
description: 'Filter deliveries by ref (`WebhookDelivery.data.ref`), single value, exact match'
required: false
schema:
type: string
- name: per_page
in: query
description: 'Number of results per page, single value, exact match'
required: false
schema:
type: integer
example: 20
- name: starting_after
in: query
description: 'Display all webhook deliveries after this webhook delivery offset UUID, single value, exact match'
required: false
schema:
type: string
format: uuid
example: 31918dce-2dc3-405b-8d3c-fd3901b17e9f
- name: event_type
in: query
description: 'See ([Data schemas](/#data-schemas)) for a list of possible values, single value, exact match'
required: false
style: form
explode: false
schema:
type: string
enum: ['See ([Data schemas](/#data-schemas))']
example: 'agreement.accepted'
- name: since
in: query
required: false
description: 'Display all webhook deliveries after this date. Date/time UTC ISO 8601 format, single value, exact match'
style: form
schema:
type: string
format: date-time
example: '2017-05-10T00:00:00Z'
- name: response_status_code
in: query
description: 'Single value / multiple values separated by commas'
required: false
schema:
type: array
items:
type: string
enum: [2xx, 4xx, 5xx]
example: '418'
- name: state
in: query
description: 'Filter deliveries by state, single value / multiple values separated by commas. See [Our delivery promise](#our-delivery-promises)'
required: false
schema:
type: array
items:
type: string
enum: [pending, completed, retrying, failed]
example: ['completed']
responses:
'200':
description: OK
headers:
Link:
$ref: '#/components/headers/Link'
Per-Page:
$ref: '#/components/headers/Per-Page'
content:
application/json:
schema:
$ref: '#/components/schemas/GetWebhookDeliveriesResponse'
'404':
description: Not Found
'/webhook_deliveries/{id}':
get:
tags:
- Webhooks
summary: Get a Webhook Delivery
description: Get a single webhook delivery by ID.
operationId: GetAWebhookDelivery
parameters:
- name: id
in: path
description: WebhookDelivery ID (`WebhookDelivery.data.id`)
required: true
style: simple
explode: false
schema:
type: string
format: UUID
example: 31918dce-2dc3-405b-8d3c-fd3901b17e9f
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetAWebhookDeliveryResponse'
'404':
description: Not Found
'/webhook_deliveries/{id}/redeliver':
post:
tags:
- Webhooks
summary: Resend a Webhook Delivery
description: >
Use this endpoint to resend a failed webhook delivery.
operationId: ResendAWebhookDelivery
parameters:
- name: id
in: path
description: WebhookDelivery ID (`WebhookDelivery.data.id`)
required: true
style: simple
explode: false
schema:
type: string
format: UUID
example: 31918dce-2dc3-405b-8d3c-fd3901b17e9f
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/RedeliverAWebhookDeliveryResponse'
/simulate/incoming_npp_payid_payment:
post:
tags:
- Sandbox Only
summary: Simulate incoming PayID payment
description: Simulate receiving a real-time PayID payment from one of your Receivable Contacts.
operationId: SimulateIncomingPayIDPayment
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/SimulateIncomingPayIDPaymentRequest'
required: true
responses:
'201':
description: Success
'400':
description: Invalid parameters
/simulate/incoming_npp_bban_payment:
post:
tags:
- Sandbox Only
summary: Simulate an incoming real-time payment
description: >
Simulate receiving a real-time payment to either a Receivable
Contact or one of your float accounts, made using a BSB and account
number (i.e. not via PayID).
operationId: SimulateIncomingNPPBBANPayment
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/SimulateIncomingNPPBBANPaymentRequest'
required: true
responses:
'201':
description: Success
'400':
description: Invalid parameters
/simulate/incoming_de_payment:
post:
tags:
- Sandbox Only
summary: Simulate an incoming DE payment
description: >
Simulate receiving a Direct Entry payment (i.e. not a real-time payment)
to either a Receivable Contact or one of your float accounts.
operationId: SimulateIncomingDEPayment
requestBody:
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/SimulateIncomingDEPaymentRequest'
required: true
responses:
'201':
description: Success
'400':
description: Invalid parameters
components:
securitySchemes:
bearerAuth:
type: oauth2
flows:
authorizationCode:
authorizationUrl: /oauth/authorize
tokenUrl: /oauth/token
refreshUrl: /oauth/token
scopes:
public: Access your public information
contacts: Manage your contacts
payments: Manage your payments
payment_requests: Manage your payment requests
refunds: Manage your refunds
agreements: Manage your agreements
transactions: Access your transaction history
open_agreements: Manage your open agreements
transfers: Manage your Transfers
schemas:
GetAgreementResponse:
title: Get an Agreement (response)
required:
- data
type: object
properties:
data:
type: object
required:
- ref
- initiator_id
- authoriser_id
- contact_id
- bank_account_id
- status
- status_reason
- responded_at
- created_at
- terms
properties:
ref:
type: string
minLength: 3
maxLength: 18
description: "The Agreement reference (Min: 3 - Max: 18)"
initiator_id:
type: string
format: uuid
description: Your Zepto account ID
authoriser_id:
type: string
format: uuid
description: The authoriser's account ID (AnyoneAccount)
contact_id:
type: string
format: uuid
description: The contact ID representing the authoriser within Zepto
bank_account_id:
type: string
format: uuid
description: The authoriser's bank account ID
status:
type: string
description: The status of the Agreement
enum:
- proposed
- accepted
- cancelled
- declined
- expended
status_reason:
type: string
description: The reason the agreement was cancelled. This is a free text field.
responded_at:
type: string
format: date-time
description: The date-time when the Agreement status changed
created_at:
type: string
format: date-time
description: The date-time when the Agreement was created
terms:
$ref: '#/components/schemas/Terms'
metadata:
type: object
description: Your custom keyed data
example:
data:
ref: A.2
initiator_id: 4e2728cc-b4ba-42c2-a6c3-26a7758de58d
authoriser_id: 8df89c16-330f-462b-8891-808d7bdceb7f
contact_id: 0d290763-bd5a-4b4d-a8ce-06c64c4a697b
bank_account_id: fb9381ec-22af-47fd-8998-804f947aaca3
status: accepted
status_reason: "reason"
responded_at: '2017-03-20T02:13:11Z'
created_at: '2017-03-20T00:53:27Z'
terms:
per_payout:
max_amount: 10000
min_amount: 1
per_frequency:
days: 7
max_amount: 1000000
ListOutgoingAgreementsResponse:
title: List outgoing Agreements (response)
required:
- data
type: object
properties:
data:
type: array
items:
type: object
description: ''
example:
data:
- ref: A.4
initiator_id: 4e2728cc-b4ba-42c2-a6c3-26a7758de58d
authoriser_id: 8df89c16-330f-462b-8891-808d7bdceb7f
contact_id: a80ac411-c8fb-45c0-9557-607c54649907
bank_account_id: fa80ac411-c8fb-45c0-9557-607c54649907
status: proposed
status_reason: null
responded_at: null
created_at: '2017-03-20T00:53:27Z'
terms:
per_payout:
max_amount: 10000
min_amount: 1
per_frequency:
days: 7
max_amount: 1000000
- ref: A.3
initiator_id: 4e2728cc-b4ba-42c2-a6c3-26a7758de58d
authoriser_id: 56df206a-aaff-471a-b075-11882bc8906a
contact_id: a80ac411-c8fb-45c0-9557-607c54649907
bank_account_id: fa80ac411-c8fb-45c0-9557-607c54649907
status: proposed
status_reason: null
responded_at: null
created_at: '2017-03-16T22:51:48Z'
terms:
per_payout:
max_amount: 5000
min_amount: 0
per_frequency:
days: '1'
max_amount: 10000
ListAllBankAccountsResponse:
title: List all Bank Accounts (response)
required:
- data
type: object
properties:
data:
type: array
items:
type: object
description: ''
example:
data:
- id: 6a7ed958-f1e8-42dc-8c02-3901d7057357
branch_code: '493192'
bank_name: National Australia Bank
account_number: '3993013'
status: active
title: 'AU.493192.3993013'
available_balance: null
- id: 56df206a-aaff-471a-b075-11882bc8906a
branch_code: '302193'
bank_name: National Australia Bank
account_number: '119302'
status: active
title: 'Trust Account'
available_balance: null
- id: ab3de19b-709b-4a41-82a5-3b43b3dc58c9
branch_code: '802919'
bank_name: Zepto Float Account
account_number: '1748212'
status: active
title: 'Float Account'
available_balance: 10000
payid_configs:
email_domain: pay.zepto.com.au
pooling_state: disabled
max_pool_size: 10
current_pool_size: 1
Terms:
title: Agreement terms
required:
- per_payout
- per_frequency
type: object
description: Terms
properties:
per_payout:
$ref: '#/components/schemas/PerPayout'
per_frequency:
$ref: '#/components/schemas/PerFrequency'
PerPayout:
title: Per payout terms
required:
- min_amount
- max_amount
type: object
properties:
min_amount:
type:
- integer
- 'null'
minimum: 1
description: Minimum amount in cents a Payment Request can be in order to be auto-approved. Specify null
for no limit.
example: 1
max_amount:
type: integer
minimum: 1
description: Maximum amount in cents a Payment Request can be in order to be auto-approved. Specify null
for no limit.
example: 10000
PerFrequency:
title: Per frequency terms
required:
- days
- max_amount
type: object
properties:
days:
type: integer
description: Amount of days to apply against the frequency. Specify null
for no limit.
example: 7
max_amount:
type: integer
description: >-
Maximum amount in cents the total of all PRs can be for the duration
of the frequency. Specify null
for no limit.
example: 1000000
AddAReceivableContactRequest:
title: Add a Receivable Contact (request)
required:
- name
- email
type: object
properties:
name:
type: string
minLength: 3
maxLength: 140
pattern: "^[ -~]+$"
description: 'Contact name (Min: 3 - Max: 140)'
email:
type: string
minLength: 6
maxLength: 256
description: 'Contact email (Min: 6 - Max: 256)'
payid_email:
type: string
minLength: 6
maxLength: 256
description: 'Contact PayID email (Min: 6 - Max: 256)'
payid_email_domain:
type: string
minLength: 3
maxLength: 254
description: 'PayID pool email domain (Min: 3 - Max: 254)'
metadata:
$ref: '#/components/schemas/Metadata'
example:
name: Delphine Jestin
email: delphine@gmail.com
payid_email: delphine_123@merchant.com.au
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
AddAReceivableContactResponse:
title: Add a Receivable Contact (response)
type: object
properties:
data:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
minLength: 3
maxLength: 140
description: 'Contact name (Min: 3 - Max: 140)'
email:
type: string
minLength: 6
maxLength: 256
description: 'Contact email (Min: 6 - Max: 256)'
'type':
type: string
description: Fixed to 'anyone'
metadata:
$ref: '#/components/schemas/Metadata'
bank_account:
type: object
properties:
id:
type: string
format: uuid
account_number:
type: string
minLength: 5
maxLength: 9
description: 'Zepto generated account number (Min: 5 - Max: 9)'
branch_code:
type: string
minLength: 6
maxLength: 6
description: 'Zepto branch code (Min: 6 - Max: 6)'
bank_name:
type: string
description: Fixed to 'Zepto Float Acount'
state:
type: string
description: Fixed to 'Active'
enum:
- active
- removed
enumeratedValueName: bank_account.state
iav_provider:
type:
- string
- 'null'
description: Always null
iav_status:
type:
- string
- 'null'
description: Always null
blocks:
type: object
properties:
debits_blocked:
type: boolean
description: Used by Zepto admins. Defines whether the bank account is blocked from being debited
credits_blocked:
type: boolean
description: Used by Zepto admins. Defined Whether this bank account is blocked from being credited
anyone_account:
type: object
properties:
id:
type: string
format: uuid
payid_details:
type: object
properties:
alias_value:
type: string
format: email
minLength: 6
maxLength: 256
description: The PayID email
alias_type:
type: string
description: Type of PayID. Fixed to `email`
alias_name:
type: string
minLength: 3
maxLength: 140
description: Your merchant's alias_name
state:
type: string
description: Pending -> Active or Failed -> Deregistered (Contact removed)
enum:
- pending
- active
- failed
- deregistered
enumeratedValueName: payid_details.state
example:
data:
id: 6a7ed958-f1e8-42dc-8c02-3901d7057357
name: Delphine Jestin
email: delphine@gmail.com
type: anyone
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
bank_account:
id: 55afddde-4296-4daf-8e49-7ba481ef9608
account_number: '1408281'
branch_code: '802919'
bank_name: Zepto Float Account
state: active
iav_provider: null
iav_status: null
blocks:
debits_blocked: false
credits_blocked: false
anyone_account:
id: 77be6ecc-5fa7-454b-86d6-02a5f147878d
payid_details:
alias_value: delphine_123@merchant.com.au
alias_type: email
alias_name: your merchant's alias_name
state: pending
ListAllContactsResponse:
title: List all Contacts (response)
required:
- data
type: object
properties:
data:
type: array
items:
type: object
description: ''
example:
data:
- id: 6a7ed958-f1e8-42dc-8c02-3901d7057357
name: Outstanding Tours Pty Ltd
email: accounts@outstandingtours.com.au
type: Zepto account
bank_account:
id: 095c5ab7-7fa8-40fd-b317-cddbbf4c8fbc
account_number: '494307'
branch_code: '435434'
bank_name: National Australia Bank
state: active
iav_provider: split
iav_status: active
blocks:
debits_blocked: false
credits_blocked: false
bank_connection:
id: c397645b-bd4f-4fc6-b1fe-4993fef6c3c7
- id: 49935c67-c5df-4f00-99f4-1413c18a89a0
name: Adventure Dudes Pty Ltd
email: accounts@adventuredudes.com.au
type: Zepto account
bank_account:
id: 861ff8e4-7acf-4897-9e53-e7c5ae5f7cc0
account_number: '4395959'
branch_code: 068231
bank_name: National Australia Bank
state: active
iav_provider: split
iav_status: credentials_invalid
blocks:
debits_blocked: false
credits_blocked: false
bank_connection:
id: c397645b-bd4f-4fc6-b1fe-4993fef6c3c7
- id: eb3266f9-e172-4b6c-b802-fe5ac4d3250a
name: Surfing World Pty Ltd
email: accounts@surfingworld.com.au
type: Zepto account
bank_account:
id: null
account_number: null
branch_code: null
bank_name: null
state: disabled
iav_provider: null
iav_status: null
blocks:
debits_blocked: false
credits_blocked: false
links:
add_bank_connection: https://go.sandbox.zeptopayments.com/invite_contact/thomas-morgan-1/1030bfef-cef5-4938-b10b-5841cafafc80
- id: 6a7ed958-f1e8-42dc-8c02-3901d7057357
name: Hunter Thompson
email: hunter@batcountry.com
type: anyone
bank_account:
id: 55afddde-4296-4daf-8e49-7ba481ef9608
account_number: '13048322'
branch_code: '123456'
bank_name: National Australia Bank
state: pending_verification
iav_provider: null
iav_status: null
blocks:
debits_blocked: false
credits_blocked: false
links:
add_bank_connection: https://go.sandbox.zeptopayments.com/invite_contact/thomas-morgan-1/1030bfef-cef5-4938-b10b-5841cafafc80
AddAnAnyoneContactRequest:
title: Add a Contact (request)
required:
- name
- email
- branch_code
- account_number
type: object
properties:
name:
type: string
pattern: "^[ -~]+$"
maxLength: 140
description: The name of the Contact (140 max. characters, ASCII characters only)
email:
type: string
maxLength: 256
description: The email of the Contact (256 max. characters)
branch_code:
type: string
description: The bank account BSB of the Contact
account_number:
type: string
description: The bank account number of the Contact
metadata:
$ref: '#/components/schemas/Metadata'
example:
name: Hunter Thompson
email: hunter@batcountry.com
branch_code: '123456'
account_number: '13048322'
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
AddAnAnyoneContactResponse:
title: Add a Contact (response)
required:
- data
type: object
properties:
data:
type: object
example:
data:
id: 6a7ed958-f1e8-42dc-8c02-3901d7057357
name: Hunter Thompson
email: hunter@batcountry.com
type: anyone
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
bank_account:
id: 55afddde-4296-4daf-8e49-7ba481ef9608
account_number: '13048322'
branch_code: '123456'
bank_name: National Australia Bank
state: active
iav_provider: null
iav_status: null
blocks:
debits_blocked: false
credits_blocked: false
links:
add_bank_connection: https://go.sandbox.zeptopayments.com/invite_contact/thomas-morgan-1/1030bfef-cef5-4938-b10b-5841cafafc80
GetABankConnectionResponse:
title: Get a BankConnection (response)
required:
- data
type: object
properties:
data:
type: object
example:
data:
id: c397645b-bd4f-4fc6-b1fe-4993fef6c3c7
provider_name: split
state: credentials_invalid
refreshed_at: '2020-02-13T09:01:00Z'
removed_at:
failure_reason:
institution:
short_name: CBA
full_name: Commonwealth Bank of Australia
contact:
id: 72e37667-6364-440f-b1bd-56df5654e258
name: Joel Boyle
email: travis@hermanntorp.net
links:
update_bank_connection: https://go.sandbox.zeptopayments.com/authorise_bank_connections/thomas-morgan-1/c397645b-bd4f-4fc6-b1fe-4993fef6c3c7
GetAContactResponse:
title: Get a Contact (response)
required:
- data
type: object
properties:
data:
type: object
required:
- id
- ref
- name
- email
- type
- metadata
- bank_account
- anyone_account
properties:
id:
type: string
format: uuid
description: The Contact ID
ref:
type: string
format: string
description: The Contact ref
name:
type: string
minLength: 3
maxLength: 140
description: 'The Contact name (Min: 3 - Max: 140)'
email:
type: string
minLength: 6
maxLength: 256
format: email
description: 'The Contact email (Min: 6 - Max: 256)'
'type':
type: string
description: (Deprecated) The Contact account type
enum:
- Zepto account
- anyone
metadata:
$ref: '#/components/schemas/Metadata'
bank_account:
type: object
properties:
id:
type: string
format: uuid
description: The Bank Account ID
account_number:
type: string
minLength: 5
maxLength: 9
description: 'The Bank Account number (Min: 5 - Max: 9)'
branch_code:
type: string
minLength: 6
maxLength: 6
description: 'The BSB number (Min: 6 - Max: 6)'
state:
type: string
enumeratedValueName: bank_account.state
description: The bank account state
enum:
- active
- removed
iav_provider:
type:
- string
- 'null'
description: The instant account verification provider
enum:
- split
- proviso
- basiq
- credit_sense
- null
iav_status:
type:
- string
- 'null'
description: The instant account verification bank connection status
enum:
- active
- removed
- credentials_invalid
- null
blocks:
type: object
properties:
debits_blocked:
type: boolean
description: Used by Zepto admins. Defines whether the bank account is blocked from being debited
credits_blocked:
type: boolean
description: Used by Zepto admins. Defined Whether this bank account is blocked from being credited
anyone_account:
type: object
properties:
id:
type: string
format: uuid
description: (Deprecated) The Anyone Account ID
bank_connection:
type: object
properties:
id:
type:
- string
- 'null'
format: uuid
description: The bank connection ID
links:
type: object
properties:
add_bank_connection:
type: string
format: url
description: A unique URL to share with the Contact in order to establish a new bank connection to their bank account
payid_details:
type: object
properties:
alias_value:
type: string
format: email
minLength: 6
maxLength: 256
description: The PayID email
alias_type:
type: string
description: Type of PayID. Fixed to `email`
alias_name:
type: string
minLength: 3
maxLength: 140
description: Your merchant's alias_name
state:
type: string
enumeratedValueName: payid_details.state
description: Pending -> Active or Failed -> Deregistered (Contact removed)
enum:
- pending
- active
- failed
- deregistered
example:
data:
id: 55afddde-4296-4daf-8e49-7ba481ef9608
ref: CNT.123
name: Outstanding Tours Pty Ltd
email: accounts@outstandingtours.com.au
type: anyone
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
bank_account:
id: fcabeacb-2ef6-4b27-ba19-4f6fa0d57dcb
account_number: '947434694'
branch_code: '304304'
bank_name: National Australia Bank
state: active
iav_provider: null
iav_status: null
blocks:
debits_blocked: false
credits_blocked: false
anyone_account:
id: 31a05f81-25a2-4085-92ef-0d16d0263bff
bank_connection:
id: null
links:
add_bank_connection: https://go.sandbox.zeptopayments.com/invite_contact/thomas-morgan-1/1030bfef-cef5-4938-b10b-5841cafafc80
payid_details:
alias_value: otp@pay.travel.com.au
alias_type: email
alias_name: your merchant's alias_name
state: active
UpdateAReceivableContactRequest:
title: Update a Receivable Contact (request)
type: object
required:
- payid_name
properties:
payid_name:
type: string
pattern: "^[ -~]+$"
description: The PayID name of the Receivable Contact
example:
payid_name: Bob Smith
UpdateAContactRequest:
title: Update a Contact (request)
type: object
properties:
name:
type: string
maxLength: 140
pattern: "^[ -~]+$"
description: The name of the Contact
email:
type: string
description: The email of the Contact
branch_code:
type: string
description: The bank account BSB of the Contact
account_number:
type: string
description: The bank account number of the Contact
metadata:
$ref: '#/components/schemas/Metadata'
example:
name: My very own alias
email: updated@email.com
branch_code: '123456'
account_number: '99887766'
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
UpdateAContactResponse:
title: Update a Contact (response)
required:
- data
type: object
properties:
data:
type: object
example:
data:
id: fcabeacb-2ef6-4b27-ba19-4f6fa0d57dcb
name: My very own alias
email: updated@email.com
type: anyone
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
bank_account:
id: 55afddde-4296-4daf-8e49-7ba481ef9608
account_number: '99887766'
branch_code: '123456'
bank_name: Zepto SANDBOX Bank
state: active
iav_provider: null
iav_status: null
blocks:
debits_blocked: false
credits_blocked: false
anyone_account:
id: 63232c0a-a783-4ae9-ae73-f0974fe1e345
links:
add_bank_connection: http://go.sandbox.zeptopayments.com/invite_contact/dog-bones-inc/fcabeacb-2ef6-4b27-ba19-4f6fa0d57dcb
MakeAPaymentRequest:
title: Make a Payment (request)
required:
- description
- matures_at
- payouts
- your_bank_account_id
- channels
type: object
properties:
description:
type: string
description: User description. Only visible to the payer. ASCII-printable characters and unicode emojis are accepted.
pattern: "^[ -~\\p{Emoji}]+$"
example: The SuperPackage
matures_at:
type: string
format: date-time
description: Date & time in UTC ISO8601 the Payment should be processed. (Can not be earlier than the start of current day in Sydney AEST/AEDT)
example: '2016-09-13T00:00:00Z'
your_bank_account_id:
type: string
description: Specify where we should take the funds for this transaction. If omitted, your primary bank account will be used.
style: form
schema:
type: string
example: 83623359-e86e-440c-9780-432a3bc3626f
channels:
type: array
description: Specify the payment channel to be used, in order. (new_payments_platform, direct_entry, or both)
payouts:
type: array
items:
$ref: '#/components/schemas/Payout'
description: One Payout object only
metadata:
$ref: '#/components/schemas/Metadata'
example:
description: The SuperPackage
matures_at: '2021-06-13T00:00:00Z'
your_bank_account_id: 83623359-e86e-440c-9780-432a3bc3626f
channels: ["new_payments_platform"]
payouts:
- amount: 30000
description: A tandem skydive jump SB23094
recipient_contact_id: 48b89364-1577-4c81-ba02-96705895d457
metadata: {
invoice_ref: "BILL-0001",
invoice_id: "c80a9958-e805-47c0-ac2a-c947d7fd778d",
custom_key: "Custom string",
another_custom_key: "Maybe a URL"
}
metadata: {
custom_key: "Custom string",
another_custom_key: "Maybe a URL"
}
Payout:
title: Payout
required:
- amount
- description
- recipient_contact_id
description: The actual Payout
type: object
properties:
amount:
type: integer
description: Amount in cents to pay the recipient
example: 30000
description:
type: string
description: Description that both the payer and recipient can see. For Direct Entry payments, the payout recipient will see the first 9 characters of this description. For NPP payments, the payout recipient will see the first 280 characters of this description. ASCII-printable characters and unicode emojis are accepted.
pattern: "^[ -~\\p{Emoji}]+$"
example: A tandem skydive jump SB23094
recipient_contact_id:
type: string
description: Contact to pay (`Contact.data.id`)
example: 48b89364-1577-4c81-ba02-96705895d457
category_purpose_code:
type: string
description: "ISO 20022 code for payment category purpose (see supported values below)."
enum: ["PENS", "SALA", "TAXS"]
example: "PENS"
end_to_end_id:
type: string
maxLength: 35
description: >
End-To-End ID (35 max. characters).
Required when a category purpose code is present.
For superannuation or tax payments, set this to the Payment Reference Number (PRN).
For salary payments, set this to the Employee Reference.
example: "FFC6D34847134E4D8BF4B9B41BDC94C8"
metadata:
type: Metadata
description: Use for your custom data and certain Zepto customisations. Stored against generated transactions and included in associated webhook payloads.
VoidAPayoutRequest:
title: Void a Payout (request)
type: object
properties:
details:
type: string
description: Optional details about why the payout has been voided
example: Incorrect recipient
Metadata:
title: Metadata
type: object
description: Use for your custom data and certain Zepto customisations.
properties: {}
example:
custom_key: Custom string
another_custom_key: Maybe a URL
MakeAPaymentResponse:
title: Make a Payment (response)
required:
- data
type: object
properties:
data:
type: object
example:
data:
ref: PB.1
your_bank_account_id: 83623359-e86e-440c-9780-432a3bc3626f
channels: ["new_payments_platform"]
payouts:
- ref: D.1
recipient_contact_id: 48b89364-1577-4c81-ba02-96705895d457
batch_description: The SuperPackage
matures_at: '2016-09-13T23:50:44Z'
created_at: '2016-09-10T23:50:44Z'
status: maturing
amount: 30000
description: A tandem skydive jump SB23094
from_id: 83623359-e86e-440c-9780-432a3bc3626f
to_id: 21066764-c103-4e7f-b436-4cee7db5f400
category_purpose_code: "PENS"
end_to_end_id: "FFC6D34847134E4D8BF4B9B41BDC94C8"
metadata:
invoice_ref: BILL-0001
invoice_id: c80a9958-e805-47c0-ac2a-c947d7fd778d
custom_key: Custom string
another_custom_key: Maybe a URL
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
ListAllPaymentsResponse:
title: List all Payments (response)
required:
- data
type: object
properties:
data:
type: array
items:
type: object
description: ''
example:
data:
- ref: PB.1
your_bank_account_id: 83623359-e86e-440c-9780-432a3bc3626f
channels: ["new_payments_platform", "direct_entry"]
payouts:
- ref: D.1
recipient_contact_id: 48b89364-1577-4c81-ba02-96705895d457
batch_description: This description is only available to the payer
matures_at: '2016-09-13T23:50:44Z'
created_at: '2016-09-10T23:50:44Z'
status: maturing
amount: 30000
description: The recipient will see this description
from_id: 83623359-e86e-440c-9780-432a3bc3626f
to_id: 21066764-c103-4e7f-b436-4cee7db5f400
metadata:
invoice_ref: BILL-0001
invoice_id: c80a9958-e805-47c0-ac2a-c947d7fd778d
custom_key: Custom string
another_custom_key: Maybe a URL
- ref: D.2
recipient_contact_id: dc6f1e60-3803-43ca-a200-7d641816f57f
batch_description: This description is only available to the payer
matures_at: '2016-09-13T23:50:44Z'
created_at: '2016-09-10T23:50:44Z'
status: maturing
amount: 30000
description: The recipient will see this description
from_id: 48b89364-1577-4c81-ba02-96705895d457
to_id: f989d9cd-87fc-4c73-b0a4-1eb0e8768d3b
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
VoidAPayment:
title: Void a Payment
GetAPaymentResponse:
title: Get a Payment (response)
required:
- data
type: object
properties:
data:
type: object
example:
data:
ref: PB.1
your_bank_account_id: 83623359-e86e-440c-9780-432a3bc3626f
channels: ["direct_entry"]
payouts:
- ref: D.1
recipient_contact_id: 48b89364-1577-4c81-ba02-96705895d457
batch_description: The SuperPackage
matures_at: '2016-09-13T23:50:44Z'
created_at: '2016-09-10T23:50:44'
status: maturing
amount: 30000
description: A tandem skydive jump SB23094
from_id: 83623359-e86e-440c-9780-432a3bc3626f
to_id: 21066764-c103-4e7f-b436-4cee7db5f400
metadata:
invoice_ref: BILL-0001
invoice_id: c80a9958-e805-47c0-ac2a-c947d7fd778d
custom_key: Custom string
another_custom_key: Maybe a URL
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
MakeAPaymentRequestRequest:
title: Make a Payment Request (request)
required:
- authoriser_contact_id
- description
- matures_at
- amount
type: object
properties:
description:
type: string
description: Description visible to the initiator (payee). The first 9 characters supplied will be visible to the authoriser (payer)
example: Visible to both initiator and authoriser
matures_at:
type: string
format: date-time
description: >-
Date & time in UTC ISO8601 that the Payment will be processed if the request is approved. (If the request is approved after this point in time, it will be processed straight away)
example: '2016-12-19T02:10:56Z'
amount:
type: integer
minimum: 1
maximum: 99999999999
description: 'Amount in cents to pay the initiator (Min: 1 - Max: 99999999999)'
example: 99000
authoriser_contact_id:
type: string
description: The Contact the payment will be requested from (`Contact.data.id`)
example: de86472c-c027-4735-a6a7-234366a27fc7
your_bank_account_id:
type: string
format: uuid
description: Specify where we should settle the funds for this transaction. If omitted, your primary bank account will be used.
style: form
schema:
type: string
example: 9c70871d-8e36-4c3e-8a9c-c0ee20e7c679
metadata:
type: object
description: Use for your custom data and certain Zepto customisations. Stored against generated transactions and included in associated webhook payloads.
example:
description: Visible to both initiator and authoriser
matures_at: 2016-12-19T02:10:56Z
amount: 99000
authoriser_contact_id: de86472c-c027-4735-a6a7-234366a27fc7
your_bank_account_id: 9c70871d-8e36-4c3e-8a9c-c0ee20e7c679
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
MakeAPaymentRequestResponse:
title: Make a Payment Request (response)
required:
- data
type: object
properties:
data:
type: object
required:
- ref
- initiator_id
- your_bank_account_id
- authoriser_id
- authoriser_contact_id
- contact_initiated
- schedule_ref
- status
- status_reason
- matures_at
- responded_at
- created_at
- credit_ref
- payout
properties:
ref:
type: string
description: 'The Payment Request reference (PR.*) (Min: 4 - Max: 8)'
initiator_id:
type: string
format: uuid
description: 'Your bank account ID where the funds will settle (Min: 36 - Max: 36)'
your_bank_account_id:
type: string
format: uuid
description: 'Your bank account ID where the funds will settle (alias of `initiator_id`) (Min: 36 - Max: 36)'
authoriser_id:
type: string
format: uuid
description: "The debtor's bank account ID (Min: 36 - Max: 36)"
authoriser_contact_id:
type: string
format: uuid
description: 'The contact ID representing the debtor within Zepto (Min: 36 - Max: 36)'
contact_initiated:
type: boolean
description: Initiated by Contact or Merchant
schedule_ref:
type:
- string
- 'null'
description: 'The schedule that generated the Payment request if applicable (Min: 0 - Max: 8)'
status:
type: string
description: The status of the Payment Request
enum:
- approved
- cancelled
status_reason:
type:
- 'null'
description: '(Deprecated) Only used when the `status` is `declined` due to prechecking.'
enum:
- null
matures_at:
type: string
format: date-time
description: 'The date-time when the Payment Request is up for processing (Min: 20 - Max: 20)'
responded_at:
type:
- string
- 'null'
format: date-time
description: 'The date-time when the Payment Request status changed (Min: 0 - Max: 20)'
created_at:
type: string
format: date-time
description: 'The date-time when the Payment Request was created (Min: 20 - Max: 20)'
credit_ref:
type:
- string
- 'null'
description: 'The resulting credit entry reference (available once approved) (Min: 4 - Max: 8)'
payout:
type: object
properties:
amount:
type: integer
minimum: 1
maximum: 99999999999
description: 'Amount in cents (Min: 1 - Max: 99999999999)'
'description':
type: string
description: 'Payment Request description (Min: 1 - Max: 280)'
matures_at:
type: string
format: date-time
description: 'The date-time when the Payment Request is up for processing (Min: 20 - Max: 20)'
required:
- amount
- description
- matures_at
metadata:
type: object
description: Your custom keyed data
example:
data:
ref: PR.39p1
initiator_id: ca7bc5b3-e47f-4153-96fb-bbe326b42772
your_bank_account_id: 9c70871d-8e36-4c3e-8a9c-c0ee20e7c679
authoriser_id: 970e4526-67d9-4ed9-b554-f5cf390ab775
authoriser_contact_id: de86472c-c027-4735-a6a7-234366a27fc7
contact_initiated: false
schedule_ref: null
status: approved
status_reason: null
matures_at: '2021-12-25T00:00:00Z'
responded_at: null
created_at: '2021-12-19T02:10:56Z'
credit_ref: null
payout:
amount: 99000
description: Premium Package for 4
matures_at: '2021-12-25T00:00:00Z'
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
MakeAPaymentRequestWithNoAgreementResponse:
title: Make a Payment Request to an Anyone Contact with no valid Agreement (response)
required:
- errors
type: object
properties:
errors:
type: string
example:
errors: Authoriser contact (de86472c-c027-4735-a6a7-234366a27fc7) is not a Zepto account holder and therefore must have a valid agreement in place before a Payment Request can be issued.
GetAPaymentRequestResponse:
title: Get a Payment Request (response)
required:
- data
type: object
properties:
data:
type: object
required:
- ref
- initiator_id
- your_bank_account_id
- authoriser_id
- authoriser_contact_id
- schedule_ref
- status
- status_reason
- matures_at
- responded_at
- created_at
- payout
properties:
ref:
type: string
description: 'The Payment Request reference (PR.*) (Min: 4 - Max: 8)'
initiator_id:
type: string
format: uuid
description: 'Your bank account ID where the funds will settle (Min: 36 - Max: 36)'
your_bank_account_id:
type: string
format: uuid
description: 'Your bank account ID where the funds will settle (alias of `initiator_id`) (Min: 36 - Max: 36)'
authoriser_id:
type: string
format: uuid
description: "The debtor's bank account ID (Min: 36 - Max: 36)"
authoriser_contact_id:
type: string
format: uuid
description: 'The contact ID representing the debtor within Zepto (Min: 36 - Max: 36)'
schedule_ref:
type:
- string
- 'null'
description: 'The schedule that generated the Payment request if applicable (Min: 0 - Max: 8)'
status:
type: string
description: The status of the Payment Request
enum:
- approved
- cancelled
status_reason:
type:
- string
- 'null'
description: 'Only used when the `status` is `declined` due to prechecking. (Min: 0 - Max: 280)'
enum:
- The balance of the nominated bank account for this Payment Request is not available.
- The nominated bank account for this Payment Request has insufficient funds.
- null
matures_at:
type: string
format: date-time
description: 'The date-time when the Payment Request is up for processing (Min: 20 - Max: 20)'
responded_at:
type: string
format: date-time
description: 'The date-time when the Payment Request status changed (Min: 0 - Max: 20)'
created_at:
type: string
format: date-time
description: 'The date-time when the Payment Request was created (Min: 20 - Max: 20)'
credit_ref:
type: string
description: 'The resulting credit entry reference (available once approved) (Min: 4 - Max: 8)'
payout:
type: object
properties:
amount:
type: integer
minimum: 1
maximum: 99999999999
description: 'Amount in cents (Min: 1 - Max: 99999999999)'
'description':
type: string
description: 'Payment Request description (Min: 1 - Max: 280)'
matures_at:
type: string
format: date-time
description: 'The date-time when the Payment Request is up for processing (Min: 20 - Max: 20)'
required:
- amount
- description
- matures_at
metadata:
type: object
description: Your custom keyed data
example:
data:
ref: PR.88me
initiator_id: ca7bc5b3-e47f-4153-96fb-bbe326b42772
your_bank_account_id: 9c70871d-8e36-4c3e-8a9c-c0ee20e7c679
authoriser_id: 970e4526-67d9-4ed9-b554-f5cf390ab775
authoriser_contact_id: de86472c-c027-4735-a6a7-234366a27fc7
contact_initiated: false
schedule_ref: null
status: approved
status_reason: null
matures_at: '2021-11-25T00:00:00Z'
responded_at: '2021-11-19T02:38:04Z'
created_at: '2021-11-19T02:10:56Z'
credit_ref: C.b6tf
payout:
amount: 1200
description: Xbox Live subscription
matures_at: '2021-11-25T00:00:00Z'
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
ListPaymentRequestCollectionsResponse:
title: 'List Collections (response)'
required:
- data
properties:
data:
type: array
items:
type: object
required:
- ref
- initiator_id
- your_bank_account_id
- authoriser_id
- authoriser_contact_id
- contact_initiated
- schedule_ref
- status
- status_reason
- matures_at
- responded_at
- created_at
- credit_ref
- payout
properties:
ref:
type: string
description: The Payment Reference reference (PR.*)
initiator_id:
type: string
format: uuid
description: Your bank account ID where the funds will settle
your_bank_account_id:
type: string
format: uuid
description: Your bank account ID where the funds will settle (alias of `initiator_id`)
authoriser_id:
type: string
format: uuid
description: The debtor's bank account ID
authoriser_contact_id:
type: string
format: uuid
description: The contact ID representing the debtor within Zepto
contact_initiated:
type: boolean
description: Initiated by Contact or Merchant
schedule_ref:
type:
- string
- 'null'
description: The schedule that generated the Payment request if applicable
status:
type: string
description: The status of the Payment Request
enum:
- approved
- cancelled
status_reason:
type:
- 'null'
description: (Deprecated) Only used when the `status` is `declined` due to prechecking.
enum:
- null
matures_at:
type: string
format: date-time
description: The date-time when the Payment Request is up for processing
responded_at:
type:
- string
- 'null'
format: date-time
description: The date-time when the Payment Request status changed
created_at:
type: string
format: date-time
description: The date-time when the Payment Request was created
credit_ref:
type:
- string
- 'null'
description: The resulting credit entry reference (available once approved)
payout:
type: object
properties:
amount:
type: integer
minimum: 1
maximum: 99999999999
description: 'Amount in cents (Min: 1 - Max: 99999999999)'
'description':
type: string
description: Payment Request description
matures_at:
type: string
format: date-time
description: The date-time when the Payment Request is up for processing
required:
- amount
- description
- matures_at
metadata:
type: array
description: Your custom keyed data
items:
type: object
example:
data:
- ref: PR.84t6
initiator_id: ca7bc5b3-e47f-4153-96fb-bbe326b42772
your_bank_account_id: 9c70871d-8e36-4c3e-8a9c-c0ee20e7c679
authoriser_id: de86472c-c027-4735-a6a7-234366a27fc7
authoriser_contact_id: fb6a9252-3818-44dc-b5aa-2195391a746f
contact_initiated: false
schedule_ref: PRS.89t3
status: approved
status_reason: null
matures_at: '2021-07-18T02:10:00Z'
responded_at: '2021-07-18T02:10:00Z'
created_at: '2021-07-18T02:10:00Z'
credit_ref: C.6gr7
payout:
amount: 4999
description: Subscription Payment
matures_at: '2021-07-18T02:10:00Z'
- ref: PR.45h7
initiator_id: ca7bc5b3-e47f-4153-96fb-bbe326b42772
your_bank_account_id: 9c70871d-8e36-4c3e-8a9c-c0ee20e7c679
authoriser_id: de86472c-c027-4735-a6a7-234366a27fc7
authoriser_contact_id: fb6a9252-3818-44dc-b5aa-2195391a746f
contact_initiated: false
schedule_ref: null
status: approved
status_reason: null
matures_at: '2021-03-09T16:58:00Z'
responded_at: null
created_at: '2021-03-09T16:58:00Z'
credit_ref: null
payout:
amount: 3000
description: Membership fees
matures_at: '2021-03-09T16:58:00Z'
ListPaymentRequestReceivablesResponse:
title: 'List Receivables (response)'
required:
- data
properties:
data:
type: array
items:
type: object
required:
- ref
- initiator_id
- your_bank_account_id
- authoriser_id
- authoriser_contact_id
- contact_initiated
- schedule_ref
- status
- status_reason
- matures_at
- responded_at
- created_at
- credit_ref
- payout
properties:
ref:
type: string
description: The Payment Reference reference (PR.*)
initiator_id:
type: string
format: uuid
description: Your bank account ID where the funds will settle
your_bank_account_id:
type: string
format: uuid
description: Your bank account ID where the funds will settle (alias of `initiator_id`)
authoriser_id:
type: string
format: uuid
description: The debtor's bank account ID
authoriser_contact_id:
type: string
format: uuid
description: The contact ID representing the debtor within Zepto
contact_initiated:
type: boolean
description: Initiated by Contact or Merchant
schedule_ref:
type:
- string
- 'null'
description: The schedule that generated the Payment request if applicable
status:
type: string
description: The status of the Payment Request. For Receivables, this will always be *approved*
status_reason:
type:
- 'null'
description: (Deprecated) Only used when the `status` is `declined` due to prechecking.
matures_at:
type: string
format: date-time
description: The date-time when the Payment Request is up for processing
responded_at:
type:
- string
- 'null'
format: date-time
description: The date-time when the Payment Request status changed
created_at:
type: string
format: date-time
description: The date-time when the Payment Request was created
credit_ref:
type: string
description: The resulting credit entry reference (available once approved)
payout:
type: object
properties:
amount:
type: integer
minimum: 1
maximum: 99999999999
description: 'Amount in cents (Min: 1 - Max: 99999999999)'
'description':
type: string
description: Payment Request description
matures_at:
type: string
format: date-time
description: The date-time when the Payment Request is up for processing
required:
- amount
- description
- matures_at
metadata:
type: array
description: Your custom keyed data
items:
type: object
example:
data:
- ref: PR.2t65
initiator_id: ca7bc5b3-e47f-4153-96fb-bbe326b42772
your_bank_account_id: 9c70871d-8e36-4c3e-8a9c-c0ee20e7c679
authoriser_id: de86472c-c027-4735-a6a7-234366a27fc7
authoriser_contact_id: fb6a9252-3818-44dc-b5aa-2195391a746f
contact_initiated: true
schedule_ref: null
status: approved
status_reason: null
matures_at: '2021-05-12T13:43:12Z'
responded_at: '2021-05-12T13:43:12Z'
created_at: '2021-05-12T13:43:12Z'
credit_ref: C.77b1
payout:
amount: 50000
description: Deposit to my Trading account
matures_at: '2021-05-12T13:43:12Z'
- ref: PR.1n644
initiator_id: ca7bc5b3-e47f-4153-96fb-bbe326b42772
your_bank_account_id: 9c70871d-8e36-4c3e-8a9c-c0ee20e7c679
authoriser_id: de86472c-c027-4735-a6a7-234366a27fc7
authoriser_contact_id: fb6a9252-3818-44dc-b5aa-2195391a746f
contact_initiated: true
schedule_ref: null
status: approved
status_reason: null
matures_at: '2021-06-01T04:34:50Z'
responded_at: null
created_at: '2021-06-01T04:34:56Z'
credit_ref: c.54r3
payout:
amount: 5000
description: Punting account top-up
matures_at: '2021-06-01T04:34:56Z'
IssueARefundRequest:
title: Issue a Refund (request)
required:
- amount
type: object
properties:
amount:
type: integer
minimum: 1
maximum: 99999999999
description: 'Amount in cents refund (Min: 1 - Max: 99999999999)'
example: 500
channels:
description: Specify the payment channel to be used, in order. (new_payments_platform, direct_entry, or both)
type: array
reason:
type: string
pattern: "^[ -~]+$"
description: The first 8 characters are visible if funds are sent via direct credit / BECS, and up to 270 characters if sent via NPP
example: Because reason
your_bank_account_id:
type: string
format: uuid
description: Specify where we should take the funds for this transaction. If omitted, your primary bank account will be used.
metadata:
$ref: '#/components/schemas/Metadata'
example:
amount: 500
channels: ["direct_entry"]
reason: Because reason
your_bank_account_id: 9c70871d-8e36-4c3e-8a9c-c0ee20e7c679
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
IssueARefundResponse:
title: Issue a Refund (response)
type: object
required:
- data
properties:
data:
type: object
required:
- ref
- for_ref
- debit_ref
- your_bank_account_id
- created_at
- amount
- reason
properties:
ref:
type: string
description: 'The Refund request reference (PRF.*) (Min: 5 - Max: 9)'
for_ref:
type: string
description: 'The associated credit reference (C.*)'
debit_ref:
type: string
description: 'The associated debit reference (C.*)'
your_bank_account_id:
type: string
format: uuid
description: 'The source bank/float account (UUID)'
created_at:
type: string
format: date-time
description: The date-time when the Payment Request was created
example: '2021-06-01T08:30:12Z'
amount:
type: integer
description: 'The amount value provided (Min: 1 - Max: 99999999999)'
channels:
type: array
description: The requested payment channel(s) to be used, in order. (new_payments_platform, direct_entry, or both)
reason:
type: string
description: Reason for the refund
contacts:
type: object
properties:
source_contact_id:
type: string
description: The original 'Receivable Contact' ID (only visible when refunding Receivables)
target_contact_id:
type: string
description: The new Contact ID receiving the funds (only visible when refunding Receivables)
example:
data:
ref: PRF.7f4
for_ref: C.1gf22
debit_ref: D.63hgf
your_bank_account_id: 9c70871d-8e36-4c3e-8a9c-c0ee20e7c679
created_at: '2021-06-01T07:20:24Z'
amount: 500
channels: ["direct_entry"]
reason: Subscription refund
contacts:
source_contact_id: 194b0237-6c2c-4705-b4fb-308274b14eda
target_contact_id: 3694ff53-32ea-40ae-8392-821e48d7bd5a
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
ListOutgoingRefundsResponse:
title: List outgoing Refunds (response)
required:
- data
type: object
properties:
data:
type: array
items:
type: object
description: ''
example:
data:
- ref: PRF.2
for_ref: C.5
debit_ref: D.5a
your_bank_account_id: 9c70871d-8e36-4c3e-8a9c-c0ee20e7c679
created_at: '2017-05-09T04:45:26Z'
amount: 5
reason: Because reason
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
RetrieveARefundResponse:
title: Retrieve a Refund (response)
required:
- data
type: object
properties:
data:
type: object
example:
data:
ref: PRF.1
for_ref: C.59
debit_ref: D.hi
your_bank_account_id: 9c70871d-8e36-4c3e-8a9c-c0ee20e7c679
created_at: '2017-05-08T07:20:24Z'
amount: 500
reason: Because reason
metadata:
custom_key: Custom string
another_custom_key: Maybe a URL
RetryPayoutResponse:
title: Retry a payout (response)
required:
- data
type: object
properties:
data:
type: array
items:
type: object
description: ''
example:
data:
- ref: C.2
parent_ref: PR.039a
type: credit
category: payout
created_at: '2016-12-05T23:15:00Z'
matures_at: '2016-12-06T23:15:00Z'
cleared_at: null
bank_ref: null
status: maturing
status_changed_at: '2016-12-05T23:15:00Z'
party_contact_id: 33c6e31d3-1dc1-448b-9512-0320bc44fdcf
party_name: Price and Sons
party_nickname: price-and-sons-2
party_bank_ref: null
description: Money for jam
amount: 1
ListAllTransactionsResponse:
title: List all transactions (response)
required:
- data
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/TransactionResponse'
example:
data:
- ref: D.3
parent_ref: null
type: debit
category: payout_refund
created_at: '2021-04-07T23:15:00Z'
matured_at: '2021-04-07T23:15:00Z'
cleared_at: '2021-04-10T23:15:00Z'
bank_ref: DT.9a
status: cleared
status_changed_at: '2021-04-10T23:15:00Z'
party_contact_id: 31354923-b1e9-4d65-b03c-415ead89cbf3
party_name: Sanford-Rees
party_nickname: null
party_bank_ref: CT.11
description: null
amount: 20000
bank_account_id: '56df206a-aaff-471a-b075-11882bc8906a'
channels: [float account]
current_channel: "float_account"
- ref: D.2
parent_ref: PB.2
type: debit
category: payout
created_at: '2016-12-06T23:15:00Z'
matured_at: '2016-12-09T23:15:00Z'
cleared_at: null
bank_ref: null
status: maturing
status_changed_at: '2016-12-06T23:15:00Z'
party_contact_id: 3c6e31d3-1dc1-448b-9512-0320bc44fdcf
party_name: Gutmann-Schmidt
party_nickname: null
party_bank_ref: null
description: Batteries for hire
amount: 2949299
bank_account_id: '56df206a-aaff-471a-b075-11882bc8906a'
channels: [float_account]
current_channel: float_account
- ref: C.2
parent_ref: PB.s0z
type: credit
category: payout
created_at: '2016-12-05T23:15:00Z'
matured_at: '2016-12-06T23:15:00Z'
cleared_at: '2016-12-09T23:15:00Z'
bank_ref: CT.1
status: cleared
status_changed_at: '2016-12-09T23:15:00Z'
party_contact_id: 33c6e31d-1dc1-448b-9512-0320bc44fdcf
party_name: Price and Sons
party_nickname: price-and-sons-2
party_bank_ref: null
description: Online purchase
amount: 19999
bank_account_id: 'c2e329ae-606f-4311-a9ab-a751baa1915c'
channels: [new_payments_platform,direct_entry]
current_channel: direct_entry
metadata:
customer_id: xur4492
product_ref: TSXL392110x
TransactionResponse:
title: A transaction (response)
required:
- ref
- parent_ref
- type
- category
- created_at
- matured_at
- cleared_at
- bank_ref
- status
- status_changed_at
- party_contact_id
- party_name
- party_nickname
- party_bank_ref
- description
- amount
- bank_account_id
- channels
- current_channel
type: object
properties:
ref:
type: string
description: The ref of the transaction (`C.*` or `D.*`)
parent_ref:
type:
- string
- 'null'
description: The ref of the parent of this transaction
type:
type: string
description: The type of the transaction
enum:
- credit
- debit
category:
type: string
description: The category of the transaction
enum:
- payout
- payout_refund
- invoice
- payout_reversal
- transfer
- recovery
created_at:
type: string
format: date-time
description: When the transaction was created
matures_at:
type: string
format: date-time
description: When the transaction was processed
cleared_at:
type:
- string
- 'null'
format: date-time
description: When the transaction was cleared
bank_ref:
type:
- string
- 'null'
description: The ref that is sent to the bank
status:
type: string
description: The status of the transaction (see [Transactions/Lifecycle](#lifecycle-4) for more info)
enum:
- maturing
- matured
- preprecessing
- processing
- clearing
- cleared
- rejected
- returned
- voided
- pending_verification
- paused
- channel_switched
status_changed_at:
type: string
description: When the status was last changed
failure_details:
type: string
description: Details if a failure occured
failure:
$ref: '#/components/schemas/Failure'
party_contact_id:
type: string
format: uuid
description: The transaction party's contact ID
party_name:
type: string
description: The transaction party's name
party_nickname:
type:
- string
- 'null'
description: The transaction party's nickname
party_bank_ref:
type:
- string
- 'null'
description: The transaction party's bank ref
description:
type:
- string
- 'null'
description: The transaction's description
amount:
type: integer
description: 'Amount in cents (Min: 1 - Max: 99999999999)'
bank_account_id:
type: string
format: uuid
description: The bank account ID of this transaction
channels:
type: array
description: Which payment channels this transaction can use (see [Payments/Make a payment](#make-a-payment) for more info)
current_channel:
type: string
description: The current payment channel in use for this transaction
enum:
- direct_entry
- float_account
- new_payments_platform
reversal_details:
type: object
description: Reversal details (see [Payments/Lifecyle](#lifecycle-3) for more info)
properties:
source_debit_ref:
type: string
description: The source debit ref of the reversal
source_credit_failure:
$ref: '#/components/schemas/Failure'
metadata:
$ref: '#/components/schemas/Metadata'
example:
ref: C.2
parent_ref: PB.s0z
type: credit
category: payout
created_at: '2016-12-05T23:15:00Z'
matured_at: '2016-12-06T23:15:00Z'
cleared_at: '2016-12-09T23:15:00Z'
bank_ref: CT.1
status: cleared
status_changed_at: '2016-12-09T23:15:00Z'
party_contact_id: 33c6e31d-1dc1-448b-9512-0320bc44fdcf
party_name: Price and Sons
party_nickname: price-and-sons-2
party_bank_ref: null
description: Online purchase
amount: 19999
bank_account_id: 'c2e329ae-606f-4311-a9ab-a751baa1915c'
channels: [direct_entry]
current_channel: direct_entry
metadata:
customer_id: xur4492
product_ref: TSXL392110x
Failure:
title: Failure object (see [Transaction/Failure codes](#failure-codes) for more info)
required:
- code
- title
- detail
type: object
properties:
code:
type: string
title:
type: string
detail:
type: string
example:
code: E205
title: Account Not Found
detail: The target account number cannot be found by the financial institution.
GetUserDetailsResponse:
title: Get User details (response)
required:
- data
type: object
properties:
data:
type: object
example:
data:
first_name: Bear
last_name: Dog
mobile_phone: 0456945832
email: bear@dog.com
account:
name: Dog Bones Inc
nickname: dog-bones-inc
abn: '129959040'
phone: 0418495033
street_address: 98 Acme Avenue
suburb: Lead
state: NSW
postcode: '2478'
SimulateIncomingPayIDPaymentRequest:
required:
- payid_email
- amount
type: object
properties:
payid_email:
type: string
minLength: 6
maxLength: 256
description: 'Receivable Contact PayID email (Min: 6 - Max: 256)'
amount:
type: integer
minimum: 1
maximum: 99999999999
description: 'Amount in cents (Min: 1 - Max: 99999999999)'
payment_description:
type: string
description: 'Default: "Simulated PayID payment"'
payment_reference:
type: string
description: 'Default: "simulated-payid-payment"'
from_bsb:
type: string
minLength: 6
maxLength: 6
description: 'Default: "014209"'
from_account_number:
type: string
minLength: 1
maxLength: 9
description: 'Default: "12345678"'
debtor_name:
type: string
pattern: "^[ -~]+$"
minLength: 1
description: 'Default: "Simulated Debtor"'
debtor_legal_name:
type: string
minLength: 1
pattern: "^[ -~]+$"
description: 'Default: "Simulated Debtor Pty Ltd"'
example:
payid_email: incoming@zeptopayments.com
amount: 10000
SimulateIncomingNPPBBANPaymentRequest:
required:
- to_bsb
- to_account_number
- amount
type: object
properties:
to_bsb:
type: string
minLength: 6
maxLength: 6
description: 'Zepto float account BSB (usually 802919)'
to_account_number:
type: string
minLength: 1
maxLength: 9
description: 'Zepto float account number'
amount:
type: integer
minimum: 1
maximum: 99999999999
description: 'Amount in cents (Min: 1 - Max: 99999999999)'
payment_description:
type: string
description: 'Default: "Simulated NPP payment"'
payment_reference:
type: string
description: 'Default: "simulated-npp-payment"'
from_bsb:
type: string
minLength: 6
maxLength: 6
description: 'Default: "014209"'
from_account_number:
type: string
minLength: 1
maxLength: 9
description: 'Default: "12345678"'
debtor_name:
type: string
minLength: 1
pattern: "^[ -~]+$"
description: 'Default: "Simulated Debtor"'
debtor_legal_name:
type: string
minLength: 1
pattern: "^[ -~]+$"
description: 'Default: "Simulated Debtor Pty Ltd"'
example:
to_bsb: "802919"
to_account_number: "88888888"
amount: 10000
SimulateIncomingDEPaymentRequest:
required:
- to_bsb
- to_account_number
- amount
type: object
properties:
to_bsb:
type: string
minLength: 6
maxLength: 6
description: 'Zepto float account BSB (usually 802919)'
to_account_number:
type: string
minLength: 1
maxLength: 9
description: 'Zepto float account number'
amount:
type: integer
minimum: 1
maximum: 99999999999
description: 'Amount in cents (Min: 1 - Max: 99999999999)'
payment_reference:
type: string
maxLength: 18
description: 'Max 18 characters. Default: "simulated-de-pymt"'
from_bsb:
type: string
minLength: 6
maxLength: 6
description: 'Default: "014209"'
from_account_number:
type: string
minLength: 1
maxLength: 9
description: 'Default: "12345678"'
debtor_name:
type: string
minLength: 1
maxLength: 16
pattern: "^[ -~]+$"
description: 'Max 16 characters. Default: "Simulated Debtor"'
example:
to_bsb: "802919"
to_account_number: "88888888"
amount: 10000
AddATransferRequest:
required:
- from_bank_account_id
- to_bank_account_id
- amount
- description
- matures_at
type: object
properties:
from_bank_account_id:
type: string
description: 'The source float/bank account (UUID)'
to_bank_account_id:
type: string
description: 'The destination float/bank account (UUID)'
amount:
type: integer
minimum: 1
maximum: 99999999999
description: 'Amount in cents (Min: 1 - Max: 99999999999)'
description:
type: string
pattern: "^[ -~\\p{Emoji}]+$"
description: Description for the Transfer. ASCII-printable characters and unicode emojis are accepted.
matures_at:
type: string
format: date-time
description: Date & time in UTC ISO8601 the Transfer should be processed. (Can not be earlier than the start of current day in Sydney AEST/AEDT)
example: '2021-06-01T02:10:56Z'
example:
from_bank_account_id: a79423b2-3827-4cf5-9eda-dc02a298d005
to_bank_account_id: 0921a719-c79d-4ffb-91b6-1b30ab77d14d
amount: 100000
description: Float account balance adjustment
matures_at: '2021-06-06T00:00:00Z'
AddATransferResponse:
required:
- data
type: object
properties:
data:
type: object
required:
- ref
- from_bank_account_id
- to_bank_account_id
- amount
- description
- matures_at
properties:
ref:
type: string
description: 'The Transfer request reference (T.*) (Min: 4 - Max: 8)'
from_bank_account_id:
type: string
description: 'The source bank/float account (UUID)'
to_bank_account_id:
type: string
description: 'The destination bank/float account (UUID'
amount:
type: integer
minimum: 1
maximum: 99999999999
description: 'The amount value provided (Min: 1 - Max: 99999999999)'
description:
type: string
description: Description for the Transfer
matures_at:
type: string
format: date-time
description: Date & time in UTC ISO8601 the Transfer should be processed. (Can not be earlier than the start of current day in Sydney AEST/AEDT)
example: '2021-06-01T02:10:56Z'
example:
data:
ref: T.11ub
from_bank_account_id: a79423b2-3827-4cf5-9eda-dc02a298d005
to_bank_account_id: 0921a719-c79d-4ffb-91b6-1b30ab77d14d
amount: 100000
description: Float account balance adjustment
matures_at: '2021-06-06T00:00:00Z'
GetATransferResponse:
required:
- data
type: object
properties:
data:
type: object
required:
- ref
- from_bank_account_id
- to_bank_account_id
- amount
- description
- matures_at
properties:
ref:
type: string
description: 'The Transfer request reference (T.*) (Min: 4 - Max: 8)'
initiator_id:
type: string
description: 'Initiating Zepto Account'
from_bank_account_id:
type: string
description: 'The source bank/float account (UUID)'
to_bank_account_id:
type: string
description: 'The destination bank/float account (UUID'
amount:
type: integer
minimum: 1
maximum: 99999999999
description: 'The amount value provided (Min: 1 - Max: 99999999999)'
description:
type: string
description: Description for the Transfer
matures_at:
type: string
format: date-time
description: Date & time in UTC ISO8601 the Transfer should be processed. (Can not be earlier than the start of current day in Sydney AEST/AEDT)
example: '2021-06-01T02:10:56Z'
example:
data:
ref: T.87xp
from_bank_account_id: a79423b2-3827-4cf5-9eda-dc02a298d005
to_bank_account_id: 0921a719-c79d-4ffb-91b6-1b30ab77d14d
amount: 47000
description: Deposit from my bank account
matures_at: '2021-06-03T00:00:00Z'
ListAllTransfersResponse:
title: List all Transfers (response)
required:
- data
type: object
properties:
data:
type: array
items:
type: object
example:
data:
- ref: T.62xl
from_bank_account_id: a79423b2-3827-4cf5-9eda-dc02a298d005
to_bank_account_id: 0921a719-c79d-4ffb-91b6-1b30ab77d14d
amount: 47000
description: Deposit from my bank account
matures_at: '2021-06-03T00:00:00Z'
- ref: T.87xp
from_bank_account_id: a79423b2-3827-4cf5-9eda-dc02a298d005
to_bank_account_id: 0921a719-c79d-4ffb-91b6-1b30ab77d14d
amount: 9700
description: Withdrawal June 2021
matures_at: '2021-05-28T00:00:00Z'
- ref: T.87s4
from_bank_account_id: a79423b2-3827-4cf5-9eda-dc02a298d005
to_bank_account_id: 0921a719-c79d-4ffb-91b6-1b30ab77d14d
amount: 230
description: Transfer to my other Float account
matures_at: '2021-05-03T00:00:00Z'
ListAllWebhooksResponse:
title: List all Webhooks (response)
required:
- data
type: object
properties:
data:
required: true
type: array
items:
type: object
example:
data:
- id: 13bd760e-447f-4225-b801-0777a15da131
url: "https://webhook.site/a9a3033b-90eb-44af-9ba3-29972435d10e"
signature_secret: "8fad2f5570e6bf0351728f727c5a8c770dda646adde049b866a7800d59"
events:
- debit.cleared
- credit.cleared
GetWebhookDeliveriesResponse:
properties:
data:
required: true
type: array
items:
type: object
example:
data:
- id: 957d40a4-80f5-4dd2-8ada-8242d5ad66c1
event_type: payout_request.added
state: completed
response_status_code: 200
created_at: 2021-09-02T02:24:50Z
payload_data_summary:
- ref: PR.ct5b
- id: 29bb9835-7c69-4ecb-bf96-197d089d0ec3
event_type: creditor_debit.scheduled
state: completed
response_status_code: 200
created_at: 2021-09-02T02:24:50Z
payload_data_summary:
- ref: "D.hyy9"
- ref: "D.6st93"
GetAWebhookDeliveryResponse:
title: Get a WebhookDelivery (response)
required:
- data
type: object
properties:
data:
type: object
properties:
id:
type: string
format: uuid
description: The Webhook Delivery ID
webhook_id:
type: string
format: uuid
description: The Webhook ID
state:
type: string
description: The state of the webhook delivery.
enum:
- pending
- completed
- retrying
- failed
payload:
type: object
description: Could be anything
created_at:
type: string
format: date-time
description: When the webhook delivery was created
example:
data:
id: 957d40a4-80f5-4dd2-8ada-8242d5ad66c1
webhook_id: 13bd760e-447f-4225-b801-0777a15da131
event_type: "payout_request.added"
state: "completed"
payload:
data:
- ref: PR.ct5b
payout:
amount: 1501
matures_at: 2021-09-02T02:24:49Z
description: Payment from Incoming Test Payment Contact 014209 12345678 (Test Payment)
status: approved
created_at: 2021-09-02T02:24:49Z
credit_ref: C.p2rt
matures_at: 2021-09-02T02:24:49Z
initiator_id: b50a6e92-a5e1-4175-b560-9e4c9a9bb4b9
responded_at: 2021-09-02T02:24:49Z
schedule_ref: null
authoriser_id: 780f186c-80fd-42b9-97d5-650d99a0bc99
status_reason: null
your_bank_account_id: b50a6e92-a5e1-4175-b560-9e4c9a9bb4b9
authoriser_contact_id: 590be205-6bae-4070-a9af-eb50d514cec5
authoriser_contact_initiated: true
- event:
at: 2021-09-02T02:24:49Z
who:
account_id: 20f4e3f8-2efc-48a9-920b-541515f1c9e3
account_type: Account
bank_account_id: b50a6e92-a5e1-4175-b560-9e4c9a9bb4b9
bank_account_type: BankAccount
type: payment_request.added
response_status_code: 200
created_at: 2021-09-02T02:24:50Z
RedeliverAWebhookDeliveryResponse:
title: Resend a WebhookDelivery (response)
required:
- data
type: object
properties:
data:
type: object
example:
data:
id: 957d40a4-80f5-4dd2-8ada-8242d5ad66c1
webhook_id: 13bd760e-447f-4225-b801-0777a15da131
state: pending
headers:
Link:
schema:
type: string
description: Contains pagination link for next page of collection, if next page exists.
example: