openapi: 3.2.0 info: title: Zepto Contacts (Receivable) 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 (Receivable) paths: /contacts/receivable: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' 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.\n\n\n\n\n\n\n" 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: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' 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: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' 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) content: application/json: schema: properties: errors: type: string examples: Contact is not receivable: summary: Contact is not receivable value: errors: Contact is not receivable PayID is not disabled: summary: PayID is not disabled value: errors: Contact must be 'disabled' but is '{status}'. Contact blocked by a Zepto admin: summary: Contact blocked by a Zepto admin value: errors: This receivable contact can only be enabled by Zepto support. Please contact Zepto for further information Bank account not blocked: summary: Bank account not blocked value: errors: Bank account must be blocked. Bank account already unblocked: summary: Bank account already unblocked value: errors: Bank account is already unblocked Bank account already unblocked for credits: summary: Bank account already unblocked for credits value: errors: Bank account is already unblocked for credits Bank account already unblocked for debits: summary: Bank account already unblocked for debits value: errors: Bank account is already unblocked for debits '404': description: Not Found /contacts/{contact_id}/receivable: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' patch: tags: - Contacts (Receivable) summary: Update a Receivable Contact description: "You can update the PayID name of a Receivable Contact.\n\n\n" 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 components: schemas: 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 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 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 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 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 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 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