openapi: 3.2.0 info: title: Zepto Contacts API contact: email: support@zepto.com.au description: Zepto allows you to make, get and manage payments using nothing but bank accounts. version: '1.0' servers: - url: https://api.sandbox.zeptopayments.com description: Sandbox API server - url: https://api.zeptopayments.com description: Production API server security: - bearerAuth: [] tags: - name: 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. ' paths: /contacts/anyone: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' post: tags: - Contacts summary: Add a Contact description: "Use this endpoint when you want to pay somebody.\n\n\n" 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: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' 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}: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' 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: "\n" 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.\n\n" 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 components: schemas: 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: https://go.sandbox.zeptopayments.com/invite_contact/dog-bones-inc/fcabeacb-2ef6-4b27-ba19-4f6fa0d57dcb 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 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 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 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 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 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 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 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 headers: Per-Page: schema: type: integer description: Contains the current maximum items in collection. Defaults to 25 example: 25 Link: schema: type: string description: Contains pagination link for next page of collection, if next page exists. example: ; rel="next" parameters: ZeptoAPIVersion: name: Zepto-API-Version in: header required: false schema: type: string pattern: ^\d{8}$ default: '20250101' example: '20260101' description: API version in YYYYMMDD format. Defaults to 20250101 (legacy) when omitted. securitySchemes: bearerAuth: type: oauth2 flows: authorizationCode: authorizationUrl: /oauth/authorize tokenUrl: /oauth/token refreshUrl: /oauth/token scopes: public: Access your public information contacts: Manage your contacts payments: Manage your payments payment_requests: Manage your payment requests refunds: Manage your refunds agreements: Manage your agreements transactions: Access your transaction history open_agreements: Manage your open agreements transfers: Manage your Transfers