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.
Direction
Agreements are therefore broken up by direction: 1. **Outgoing:** Agreement sent to one of your Contacts 2. **Outgoing:** Agreement sent to another Zepto account [Deprecated] 3. **Incoming:** Agreement received from another Zepto account [Deprecated] ##Lifecycle An Agreement can have the following statuses: | Status | Description | |-------|-------------| | `proposed` | Waiting for the Agreement to be accepted or declined. | | `accepted` | The Agreement has been accepted and is active. | | `cancelled` | The Agreement has been cancelled (The initiator or authoriser can cancel an Agreement). | | `declined` | The Agreement has been declined. | | `expended` | The Agreement has been expended (Only for [single_use Unassigned Agreements](/#Zepto-API-Unassigned-Agreements)). | - name: Bank Accounts description: | Your currently linked up bank accounts. - name: Contacts description: > Your Contacts form an address book of parties with whom you can interact. In order to initiate any type of transaction you must first have the party in your Contact list. - name: Bank Connections description: > Bank connections are read-only connections to your contacts' banking data. This allows Zepto (and yourself) to make intelligent transactional decisions leading to better outcomes. Use these endpoints to: * List your bank connections and check their status * Retrieve a link that you can share with your contact to update their invalidated bank connection (e.g Their online banking credentials have changed) - name: Payments description: > A Payment is used to disburse funds to your Contacts. Supported payment rails: * **NPP**: New Payments Platform (Real-time) * **DE / BECS**: Direct Entry / Bulk Electronic Clearing System (Slower) ##Lifecycle > Example payout reversal response ```json { "data": [ { "ref": "C.3", "parent_ref": "PB.1", "type": "credit", "category": "payout_reversal", "created_at": "2021-04-07T23:15:00Z", "matures_at": "2021-04-07T23:15:00Z", "cleared_at": null, "bank_ref": null, "status": "maturing", "status_changed_at": "2016-12-08T23:15:00Z", "party_contact_id": "26297f44-c5e1-40a1-9864-3e0b0754c32a", "party_name": "Sanford-Rees", "party_nickname": "sanford-rees-8", "description": "Payout reversal of D.1 for Sanford-Rees due to no account or incorrect account number" "amount": 1, "reversal_details": { "source_debit_ref": "D.1", "source_credit_failure": { "code": "E105", "title": "Account Not Found", "detail": "The target account number is incorrect." } } } ] } ``` A Payment is simply a group of Payouts, therefore it does not have a particular status. Its Payouts however have their status regularly updated. For a list of possible Payout statuses check out the [Transactions](/#Zepto-API-Transactions). ### Payout Reversal When Zepto is unable to credit funds to a recipient, we will automatically create a payout reversal credit back to the payer. Furthermore, within the payout reversal credit, Zepto will include details in the `description` and under the `reversal_details` key as to why the original credit to the recipient failed. - name: Payouts description: > This endpoint gives you some control over a transaction: * After it has been created; and * Before it has been submitted to the banks. - name: Payment Requests description: > A Payment Request (PR) is used to collect funds, via direct debit, from one of your Contacts (as long as there is an accepted Agreement in place).
Applicable scenarios
1. **You send a Payment Request to a [Contact](/#Zepto-API-Contacts) in order to collect funds:** 1. Given there is an Agreement in place and the Payment Request is within the terms of the Agreement, then it will be automatically approved; **or** 1. Given the Payment Request is **not** within the terms of the Agreement, then it will not be created; **or** 1. There is no Agreement in place, then it will not be created. 1. **Your customer sends funds to you as a [Receivable Contact](/#add-a-receivable-contact):** 1. A *receivable* Payment Request will be automatically created and approved to identify the movement of funds from your customer to your chosen Zepto float account. ##Lifecycle A Payment Request can have the following statuses: | Status | Description | |-------|-------------| | `approved` | The debtor has approved the Payment Request. | | `cancelled` | The creditor has cancelled the Payment Request. |
Prechecking
When using Payment Requests to collect payments from your customer, Zepto will automatically check for available funds before **attempting to debit** the debtor. This check is only performed for contacts with an active [bank connection](/#Zepto-API-Bank-Connections). - name: Refunds description: > Refunds can be issued for any successfully completed Payment Request transaction. This includes: 1. Payment Requests for direct debit payments **(Collections)**: 2. Payment Requests for funds received via DE/NPP **(Receivables)**: This allows you to return any funds that were previously collected or received into one of your bank/float accounts. - name: Transactions description: > By default, the transactions endpoint provides a detailed look at all past, current and future debits & credits related to your account. ##Lifecycle A transaction (debit or credit) can have the following statuses: | Status | Description | |--------|-------------| | `maturing` | The maturation date has not yet been reached. | | `matured` | The maturation date has been reached and the transaction is eligible for processing. | | `preprocessing` | The transaction is undergoing pre-checks before being sent to the bank. | | `processing` | The transaction has been submitted to the bank. | | `clearing` | Waiting for confirmation from the bank that the transaction has succeeded. | | `cleared` | The transaction is complete. | | `rejected` | The bank has rejected the transaction due to incorrect bank account details. | | `returned` | The transaction did not successfully clear. | | `voided` | The transaction has been cancelled and is no longer eligible for processing. | | `pending_verification` | The bank account must be verified before the transaction can proceed. | | `paused` | The transaction has temporary been paused by Zepto pending internal review. | | `channel_switched` | The initial payment channel has failed and the credit has automatically switched to attempt the payment using the next available channel. | ## Failure codes > Example response ```json { "data": [ { "ref": "D.3", "parent_ref": null, "type": "debit", "category": "payout_refund", "created_at": "2021-04-07T23:15:00Z", "matures_at": "2021-04-10T23:15:00Z", "cleared_at": null, "bank_ref": null, "status": "returned", "status_changed_at": "2021-04-08T23:15:00Z", "failure" : { "code": "E251", "title": "Voided By Initiator", "detail": "The transaction was voided by its initiator.", }, "failure_details": "Wrong amount - approved by Stacey" "party_contact_id": "26297f44-c5e1-40a1-9864-3e0b0754c32a", "party_name": "Sanford-Rees", "party_nickname": "sanford-rees-8", "description": null, "amount": 1, "bank_account_id": "56df206a-aaff-471a-b075-11882bc8906a" "channels": ["float_account"] "current_channel": "float_account" } ] } ``` The rejected, returned & voided statuses are always accompanied by a failure code, title and detail as listed below. ### DE credit failures | Code | Title | Detail | | ------------ | ------------- | -------------- | | E101 | Invalid BSB Number | The BSB is not valid or is no longer active. | | E102 | Payment Stopped | The target institution has blocked transactions to this account. Please refer to customer. | | E103 | Account Closed | The target account is closed. | | E104 | Customer Deceased | The target account's owner has been listed as deceased. | | E105 | Account Not Found | The target account number cannot be found by the financial institution. | | E106 | Refer to Customer | Usually means that there is an issue with the account receiving a credit that only the customer and their financial institution can resolve. Please refer to customer. | | E107 | Account Deleted | The target account is deleted. | | E108 | Invalid UserID | Please contact Zepto for further information. | | E109 | Technically Invalid | Usually means that the account is not creditable or that the reason for failure cannot be categorised within the standard BECS return codes. Please refer to customer. | | E150 | Voided By Admin | The transaction was voided by an administrator. | | E151 | Voided By Initiator | The transaction was voided by its initiator. | | E152 | Insufficient Funds | There were insufficient funds to complete the transaction. | | E153 | System Error | The transaction was unable to complete. Please contact Zepto for assistance. | | E154 | Account Blocked | The target account is blocked and cannot receive funds. | | E199 | Unknown DE Error | An unknown DE error occurred. Please contact Zepto for assistance. | ### DE debit failures | Code | Title | Detail | | ------------ | ------------- | -------------- | | E201 | Invalid BSB Number | The BSB is not valid or is no longer active. | | E202 | Payment Stopped | The target institution has blocked transactions to this account. Please refer to customer. | | E203 | Account Closed | The target account is closed. | | E204 | Customer Deceased | The target account's owner has been listed as deceased. | | E205 | Account Not Found | The target account number cannot be found by the financial institution. | | E206 | Refer to Customer | Usually means insufficient funds or that the target account has breached their transaction limits. | | E207 | Account Deleted | The target account is deleted. | | E208 | Invalid UserID | Please contact Zepto for further information. | | E209 | Technically Invalid | Usually means that the account is not debitable or that the reason for failure can not be categorised within the standard BECS return codes. Please refer to customer. | | E250 | Voided By Admin | The transaction was voided by an administrator. | | E251 | Voided By Initiator | The transaction was voided by its initiator. | | E252 | Insufficient Funds | There were insufficient funds to complete the transaction. | | E253 | System Error | The transaction was unable to complete. Please contact Zepto for assistance. | | E299 | Unknown DE Error | An unknown DE error occurred. Please contact Zepto for assistance. | ### NPP credit failures | Code | Title | Detail | | ------------ | ------------- | -------------- | | E301 | Upstream Network Outage | An upstream network issue occurred. Please try again later. | | E302 | BSB Not NPP Enabled | The target BSB is not NPP enabled. Please try another channel. | | E303 | Account Not NPP Enabled | The target account exists but cannot accept funds via the NPP. Please try another channel. | | E304 | Account Not Found | The target account number cannot be found. | | E305 | Intermittent Outage At Target Institution | The target financial institution is experiencing technical difficulties. Please try again later. | | E306 | Account Closed | The target account is closed. | | E307 | Target Institution Offline | The target financial institution is undergoing maintenance or experiencing an outage. Please try again later. | | E308 | Account Blocked | The target account is blocked and cannot receive funds. | | E399 | Unknown NPP Error | An unknown NPP error occurred. Please contact Zepto for assistance. | - name: Transfers description: > This endpoint lets you Transfer funds between any bank & float accounts registered under your Zepto account: 1. **From**: Bank Account **To**: Float Account: * Topping up a float account via Direct Debit * Up to 2 days 2. **From**: Float Account **To**: Bank Account: * Withdrawing from a float account * Will attempt NPP first and channel switch to DE if required 3. **From**: Float Account **To**: Float Account: * Transfer between two float accounts * Within seconds - name: Unassigned Agreements description: > An agreement with no preset authoriser that can only be accepted once and must be accepted within a predefined time period. Unassigned Agreements are shared using the generated link available in the response body. You can then include it in an email, text message, embed it in an iFrame, etc... Please refer to the [Unassigned Agreement](http://help.zepto.money/agreements/unassigned-agreement) article in our knowledge base for more information. - name: Users description: | All about the currently authenticated user. - name: Sandbox Only description: Special testing endpoints that only exist in the sandbox environment. paths: /agreements/outgoing: get: tags: - Agreements summary: List Agreements description: >- By default, all outgoing Agreements will be returned. You can apply filters to your query to customise the returned Agreements. operationId: ListOutgoingAgreements 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: authoriser_id in: query description: 'Authoriser ID (`Contact.data.account.id`), single value, exact match' style: form schema: type: string example: 2c4dec90-8a4c-4685-b620-bd1d7ca05a60 - name: contact_id in: query description: 'Contact ID (`Contact.data.id`), single value, exact match' style: form schema: type: string example: e5edc264-1771-4809-9cf5-b40baaee15f7 - name: status in: query description: Exact match style: form explode: false schema: type: array items: type: string enum: - proposed - accepted - declined - cancelled example: - proposed responses: '200': description: OK headers: Link: $ref: '#/components/headers/Link' Per-Page: $ref: '#/components/headers/Per-Page' content: application/json: schema: $ref: '#/components/schemas/ListOutgoingAgreementsResponse' '/agreements/{agreement_ref}': get: tags: - Agreements summary: Get an Agreement description: Get a single Agreement by its reference operationId: GetAgreement parameters: - name: agreement_ref in: path description: 'Single value, exact match' required: true style: simple schema: type: string pattern: "^[ -~]+$" example: A.2 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetAgreementResponse' delete: tags: - Agreements summary: Cancel an Agreement description: >- An Agreement can be cancelled by the initiator at any time whilst the authoriser (Agreement recipient) can only cancel a previously accepted Agreement. operationId: CancelAgreement parameters: - name: agreement_ref in: path description: 'Single value, exact match.' required: true style: simple schema: type: string pattern: "^[ -~]+$" example: A.2 responses: '204': description: No Content /bank_accounts: get: tags: - Bank Accounts summary: List all Bank Accounts description: > By default, all Bank Accounts will be returned. operationId: ListAllBankAccounts responses: '200': description: OK headers: Link: $ref: '#/components/headers/Link' Per-Page: $ref: '#/components/headers/Per-Page' content: application/json: schema: $ref: '#/components/schemas/ListAllBankAccountsResponse' /contacts/anyone: post: tags: - Contacts summary: Add a Contact description: > Use this endpoint when you want to pay somebody. operationId: AddAnAnyoneContact parameters: [] requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/AddAnAnyoneContactRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/AddAnAnyoneContactResponse' /contacts/receivable: post: tags: - Contacts (Receivable) summary: Add a Receivable Contact description: | Receive funds from a Contact by allowing them to pay to a personalised PayID or account number. Perfect for reconciling incoming funds to a customer, receiving funds instantly, eliminating human error & improving your customer's experience. operationId: AddAReceivableContact parameters: [] requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/AddAReceivableContactRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/AddAReceivableContactResponse' '404': description: Not Found '/contacts/{contact_id}/receivable/disable': post: tags: - Contacts (Receivable) summary: Disable a Receivable Contact description: | This endpoint should be used to Disable a Receivable Contact. This will reject all payments made to the relevant Account number or PayID and return them to your customer. Payments made via DE and NPP will be rejected. operationId: DisableAReceivableContact parameters: - name: contact_id in: path description: Receivable Contact ID (`ReceivableContact.data.id`) required: true style: simple explode: false schema: type: string format: UUID example: 2d2429c2-b868-455e-80ef-915df7c115a7 responses: '204': description: No Content (success) '400': description: Bad Request (errors) '404': description: Not Found '/contacts/{contact_id}/receivable/activate': post: tags: - Contacts (Receivable) summary: Reactivate a Receivable Contact description: | This endpoint should be used to Reactivate a Receivable Contact that has been previously Disabled. This will once again allow you to receive funds from your customer via both DE and NPP channels. operationId: ActivateAReceivableContact parameters: - name: contact_id in: path description: Receivable Contact ID (`ReceivableContact.data.id`) required: true style: simple explode: false schema: type: string format: UUID example: 2d2429c2-b868-455e-80ef-915df7c115a7 responses: '204': description: No Content (success) '400': description: Bad Request (errors) '404': description: Not Found '/contacts/{contact_id}/receivable': patch: tags: - Contacts (Receivable) summary: Update a Receivable Contact description: | You can update the PayID name of a Receivable Contact. operationId: UpdateAReceivableContact parameters: - name: contact_id in: path description: Receivable Contact ID (`ReceivableContact.data.id`) required: true style: simple explode: false schema: type: string format: UUID example: 2d2429c2-b868-455e-80ef-915df7c115a7 requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/UpdateAReceivableContactRequest' required: true responses: '202': description: Accepted '400': description: Bad Request (errors) '404': description: Not Found /contacts: get: tags: - Contacts summary: List all Contacts description: > By default, all Contacts will be returned. You can apply filters to your query to customise the returned Contact list. operationId: ListAllContacts 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: name in: query description: 'Single value, string search' style: form schema: type: string example: Some name - name: nickname in: query description: 'Single value, string search' style: form schema: type: string example: Some_nickname - name: email in: query description: 'Single value, string search' style: form schema: type: string example: george@gmail.com - name: bank_account_id in: query description: 'Single value, exact match' style: form schema: type: string example: 095c5ab7-7fa8-40fd-b317-cddbbf4c8fbc - name: bank_account_branch_code in: query description: 'Single value, exact match' style: form schema: type: string example: "068231" - name: bank_account_account_number in: query description: 'Single value, exact match' style: form schema: type: string example: '4395959' responses: '200': description: OK headers: Link: $ref: '#/components/headers/Link' Per-Page: $ref: '#/components/headers/Per-Page' content: application/json: schema: $ref: '#/components/schemas/ListAllContactsResponse' '/contacts/{id}': get: tags: - Contacts summary: Get a Contact description: Get a single Contact by its ID operationId: GetAContact parameters: - name: id in: path description: Contact ID (`Contact.data.id`) required: true style: simple explode: false schema: type: string format: UUID example: 55afddde-4296-4daf-8e49-7ba481ef9608 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetAContactResponse' '404': description: Not Found delete: tags: - Contacts summary: Remove a Contact description: > operationId: RemoveAContact parameters: - name: id in: path description: Contact ID (`Contact.data.id`) required: true style: simple schema: type: string format: UUID example: 55afddde-4296-4daf-8e49-7ba481ef9608 responses: '204': description: '' patch: tags: - Contacts summary: Update a Contact description: > You can update the name, email, bank account and metadata of any Contact. operationId: UpdateAContact parameters: - name: id in: path description: Contact ID (`Contact.data.id`) required: true style: simple schema: type: string example: 55afddde-4296-4daf-8e49-7ba481ef9608 requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/UpdateAContactRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UpdateAContactResponse' '404': description: Not Found /payments: post: tags: - Payments summary: Make a Payment description: > To enable custom payment flows, the required payment channel can be selected by setting the _channel_ attribute to one of the following combinations: operationId: MakeAPayment parameters: - name: 'Idempotency-Key' in: header description: 'Idempotency key to support safe retries for 24h' required: true schema: type: string example: '{unique-uuid-per-payment}' requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/MakeAPaymentRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/MakeAPaymentResponse' get: tags: - Payments summary: List all Payments description: '' operationId: ListAllPayments 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' responses: '200': description: OK headers: Link: $ref: '#/components/headers/Link' Per-Page: $ref: '#/components/headers/Per-Page' content: application/json: schema: $ref: '#/components/schemas/ListAllPaymentsResponse' '/payments/{payment_ref}': get: tags: - Payments summary: Get a Payment description: Get a single payment by its reference operationId: GetAPayment parameters: - name: payment_ref in: path description: Payment reference required: true style: simple schema: type: string example: PB.1 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetAPaymentResponse' '/payouts/{ref}': delete: tags: - Payouts summary: Void a Payment description: > You can void any Payment from your account that has not yet matured. operationId: VoidAPayment parameters: - name: ref in: path description: Payment debit reference number e.g D.48 required: true style: simple explode: false schema: type: string example: D.48 responses: '204': description: No Content /payment_requests: post: tags: - Payment Requests summary: Request Payment description: > operationId: MakeAPaymentRequest parameters: - name: 'Idempotency-Key' in: header description: 'Idempotency key to support safe retries for 24h' required: true schema: type: string example: '{unique-uuid-per-payment-request}' requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/MakeAPaymentRequestRequest' required: true responses: '200': description: Created content: application/json: schema: $ref: '#/components/schemas/MakeAPaymentRequestResponse' '422': description: When a payment is requested from an Anyone Contact with no valid Agreement content: application/json: schema: $ref: '#/components/schemas/MakeAPaymentRequestWithNoAgreementResponse' '/payment_requests/{payment_request_ref}': get: tags: - Payment Requests summary: Get a Payment Request description: '' operationId: GetAPaymentRequest parameters: - name: payment_request_ref in: path description: 'Single value, exact match' required: true style: simple schema: type: string example: PR.3 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetAPaymentRequestResponse' delete: tags: - Payment Requests summary: Cancel a Payment Request description: A Payment Request can be cancelled as long as the associated transaction's state is maturing or matured. operationId: CancelAPaymentRequest parameters: - name: payment_request_ref in: path description: 'Single value, exact match' required: true style: simple schema: type: string example: PR.3 responses: '204': description: No Content /payment_requests/collections: get: tags: - Payment Requests summary: 'List Collections' description: Payment Requests where you are the creditor and are collecting funds from your debtor using traditional direct-debit. operationId: ListPaymentRequestCollections 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' responses: '200': description: OK headers: Link: $ref: '#/components/headers/Link' Per-Page: $ref: '#/components/headers/Per-Page' content: application/json: schema: $ref: '#/components/schemas/ListPaymentRequestCollectionsResponse' /payment_requests/receivables: get: tags: - Payment Requests summary: 'List Receivables' description: Payment Requests where the debtor is sending you funds ([Receivable Contacts](https://docs.zeptopayments.com/reference/addareceivablecontact)). This endpoint exposes all received payments. operationId: ListPaymentRequestReceivables 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' responses: '200': description: OK headers: Link: $ref: '#/components/headers/Link' Per-Page: $ref: '#/components/headers/Per-Page' content: application/json: schema: $ref: '#/components/schemas/ListPaymentRequestReceivablesResponse' '/credits/{credit_ref}/refunds': post: tags: - Refunds summary: Issue a Refund description: > Certain rules apply to the issuance of a refund: operationId: IssueARefund parameters: - name: 'Idempotency-Key' in: header description: 'Idempotency key to support safe retries for 24h' required: true schema: type: string example: '{unique-uuid-per-refund}' - name: credit_ref in: path description: 'The credit reference number e.g C.625v' required: true style: simple schema: type: string example: C.625v requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/IssueARefundRequest' required: true responses: '200': description: Created content: application/json: schema: $ref: '#/components/schemas/IssueARefundResponse' /refunds/outgoing: get: tags: - Refunds summary: List Refunds description: '' operationId: ListOutgoingRefunds 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' responses: '200': description: OK headers: Link: $ref: '#/components/headers/Link' Per-Page: $ref: '#/components/headers/Per-Page' content: application/json: schema: $ref: '#/components/schemas/ListOutgoingRefundsResponse' '/refunds/{refund_ref}': get: tags: - Refunds summary: Retrieve a Refund description: Get a single Refund by its reference operationId: RetrieveARefund parameters: - name: refund_ref in: path description: 'Single value, exact match' required: true style: simple schema: type: string example: PRF.75f responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RetrieveARefundResponse' /transactions: get: tags: - Transactions summary: List all transactions description: '' operationId: ListAllTransactions 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: ref (debit or credit) in: query description: 'Single value, exact match' style: form schema: type: string example: D.1i - name: parent_ref in: query description: 'Single value, exact match' style: form schema: type: string example: PRF.92a - name: bank_ref in: query description: 'Single value, exact match' style: form schema: type: string example: DT.12 - name: both_parties in: query description: 'Single value, exact match. Will also list debits & credits applied to the other party' style: form schema: type: boolean example: true - name: status in: query description: 'Multiple values, exact match' style: form explode: false schema: type: array items: type: string enum: - maturing - matured - preprocessing - processing - clearing - cleared - rejected - returned - voided - pending_verification - paused example: - maturing - name: category in: query description: 'Multiple values, exact match' style: form explode: false schema: type: array items: type: string enum: - payout - payout_refund - invoice example: - payout - name: type in: query description: 'Multiple values, exact match' style: form explode: false schema: type: array items: type: string enum: - debit - credit example: - debit - name: other_party in: query description: 'Single value, string search. Cannot be combine with 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: ; rel="next" Per-Page: schema: type: integer description: Contains the current maximum items in collection. Defaults to 25 example: 25 security: - bearerAuth: []