openapi: 3.2.0
info:
title: Zepto Transfers 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
security:
- bearerAuth: []
tags:
- name: Transfers
description: "\nThis endpoint lets you Transfer funds between any bank & float accounts registered under your Zepto account:\n\n1. **From**: Bank Account **To**: Float Account:\n * Topping up a float account via Direct Debit\n * Up to 2 days\n2. **From**: Float Account **To**: Bank Account:\n * Withdrawing from a float account\n * Will attempt NPP first and channel switch to DE if required\n3. **From**: Float Account **To**: Float Account:\n * Transfer between two float accounts\n * Within seconds\n"
paths:
/transfers:
parameters:
- $ref: '#/components/parameters/ZeptoAPIVersion'
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}:
parameters:
- $ref: '#/components/parameters/ZeptoAPIVersion'
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'
components:
headers:
Per-Page:
schema:
type: integer
description: Contains the current maximum items in collection. Defaults to 25
example: 25
Link:
schema:
type: string
description: Contains pagination link for next page of collection, if next page exists.
example: ; rel="next"
schemas:
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'
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'
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'
parameters:
ZeptoAPIVersion:
name: Zepto-API-Version
in: header
required: false
schema:
type: string
pattern: ^\d{8}$
default: '20250101'
example: '20260101'
description: API version in YYYYMMDD format. Defaults to 20250101 (legacy) when omitted.
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