openapi: 3.2.0 info: title: Zepto PayTo Agreement modification API version: '20260101' description: Documentation for the Zepto PayTo API. termsOfService: https://www.zepto.com.au/terms-of-service/ contact: email: support@zepto.com.au servers: - description: Zepto Sandbox url: https://api.sandbox.zeptopayments.com - description: Zepto Production url: https://api.zeptopayments.com security: - bearerAuth: [] tags: - name: Agreement modification description: Modify existing agreements paths: /payto/agreements/{agreement_uid}/amendment: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' - name: agreement_uid in: path schema: type: string pattern: ^[A-Za-z0-9_~.-]{1,64}$ description: A supplied unique ID example: Agreement_00012345 required: true post: summary: create amendment tags: - Agreement modification description: 'Create an amendment for an existing Agreement. Any attributes of the existing Agreement that will no longer be relevant after the amendment has been applied must be set to `null` as part of the amendment. For example, when amending `payment_terms.type` from `"fixed"` to `"variable"`, `payment_terms.amount` must be set to `null`. ' parameters: [] responses: '202': description: accepted '400': description: bad request content: application/json: examples: Generic validation error: summary: Generic validation error value: errors: - title: Validation Failed detail: The value for `invalid_key` is not allowed schema: $ref: '#/components/schemas/payto.generic_errors' '422': description: Unprocessable Entity content: application/json: examples: Mandate in wrong state: summary: Mandate in wrong state value: errors: - code: ZPAMN00 title: Agreement not amendable detail: Agreement must be active or suspended before it can be amended Mandate initiator missing ABN or ACN: summary: Mandate initiator missing ABN or ACN value: errors: - code: ZPAGR18 title: Initiator must include exactly one of ABN, ACN, or client_id detail: You must provide exactly one of initiator ABN, ACN, or client_id schema: $ref: '#/components/schemas/payto.unprocessable_mandate_errors' '401': description: unauthorized content: application/json: examples: Unauthorised access token: summary: Unauthorised access token value: errors: - title: Unauthorised access token detail: Access token is expired or not valid links: about: https://docs.zeptopayments.com/docs/zepto-api#authentication-and-authorisation schema: $ref: '#/components/schemas/payto.generic_errors' '403': description: forbidden '404': description: Not Found '500': description: Internal Server Error requestBody: content: application/json: schema: type: object $ref: '#/components/schemas/payto.amendment_request' callbacks: payto_agreement.amended: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.amended requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.amended' responses: '200': description: OK payto_agreement.amendment_declined: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.amendment_declined requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.amendment_declined' responses: '200': description: OK payto_agreement.amendment_expired: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.amendment_expired requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.amendment_expired' responses: '200': description: OK payto_agreement.amendment_failed: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.amendment_failed requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.amendment_failed' responses: '200': description: OK get: summary: show amendment tags: - Agreement modification description: This will return any in-progress amendment for an Agreement (e.g. no response from debtor). If the Agreement has no in-progress amendment, endpoint will return `404` responses: '200': description: successful content: application/json: examples: Successful request: summary: Successful request value: data: agreement_uid: biz_agreement_123 actor: initiator changes: description: A short description resolution_requested_before: null state: pending failure: null created_at: '2022-02-01T09:41:00+11:00' links: agreement: https://api.zeptopayments.com/payto/agreements/biz_agreement_123 schema: type: object required: - data properties: data: $ref: '#/components/schemas/payto.amendment' '401': description: unauthorized content: application/json: examples: Unauthorised access token: summary: Unauthorised access token value: errors: - title: Unauthorised access token detail: Access token is expired or not valid links: about: https://docs.zeptopayments.com/docs/zepto-api#authentication-and-authorisation schema: $ref: '#/components/schemas/payto.generic_errors' '403': description: forbidden '404': description: Not Found '500': description: Internal Server Error /payto/agreements/{agreement_uid}/amendment/recall: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' - name: agreement_uid in: path schema: type: string pattern: ^[A-Za-z0-9_~.-]{1,64}$ description: A supplied unique ID example: Agreement_00012345 required: true post: summary: create amendment_recall tags: - Agreement modification description: An in-progress amendment for an Agreement can be recalled if debtor has not responded yet. Once the amendment as been recalled a new amendment can be created. parameters: [] responses: '202': description: accepted '422': description: Unprocessable Entity content: application/json: examples: Recall already in progress: summary: Recall already in progress value: errors: - code: ZPARE01 title: Already processing detail: There is already an in-progress recall for this amendment schema: $ref: '#/components/schemas/payto.unprocessable_amendment_recall_errors' '401': description: unauthorized content: application/json: examples: Unauthorised access token: summary: Unauthorised access token value: errors: - title: Unauthorised access token detail: Access token is expired or not valid links: about: https://docs.zeptopayments.com/docs/zepto-api#authentication-and-authorisation schema: $ref: '#/components/schemas/payto.generic_errors' '403': description: forbidden '500': description: Internal Server Error requestBody: content: application/json: schema: $ref: '#/components/schemas/payto.amendment_recall_request' callbacks: payto_agreement.amendment_recalled: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.amendment_recalled requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.amendment_recalled' responses: '200': description: OK payto_agreement.amendment_recall_failed: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.amendment_recall_failed requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.amendment_recall_failed' responses: '200': description: OK /payto/agreements/{agreement_uid}/cancellation: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' - name: agreement_uid in: path schema: type: string pattern: ^[A-Za-z0-9_~.-]{1,64}$ description: A supplied unique ID example: Agreement_00012345 required: true post: summary: cancel agreement tags: - Agreement modification parameters: [] responses: '202': description: accepted '400': description: Bad Request content: application/json: examples: Generic validation error: summary: Generic validation error value: errors: - title: Validation Failed detail: The value for `invalid_key` is not allowed schema: $ref: '#/components/schemas/payto.generic_errors' '422': description: Unprocessable Entity content: application/json: examples: Mandate in incorrect state: summary: Mandate in incorrect state value: errors: - code: ZPCAN00 title: Incorrect agreement state detail: Agreement can not be cancelled while in the 'cancelled' state schema: $ref: '#/components/schemas/payto.unprocessable_mandate_cancel_errors' '401': description: unauthorized content: application/json: examples: Unauthorised access token: summary: Unauthorised access token value: errors: - title: Unauthorised access token detail: Access token is expired or not valid links: about: https://docs.zeptopayments.com/docs/zepto-api#authentication-and-authorisation schema: $ref: '#/components/schemas/payto.generic_errors' '403': description: forbidden '404': description: Not Found '500': description: Internal Server Error requestBody: content: application/json: schema: type: object $ref: '#/components/schemas/payto.cancellation_request' callbacks: payto_agreement.cancelled: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.cancelled requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.cancelled' responses: '200': description: OK payto_agreement.cancellation_failed: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.cancellation_failed requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.cancellation_failed' responses: '200': description: OK /payto/agreements/{agreement_uid}/suspension: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' - name: agreement_uid in: path schema: type: string pattern: ^[A-Za-z0-9_~.-]{1,64}$ description: A supplied unique ID example: Agreement_00012345 required: true post: summary: suspend agreement tags: - Agreement modification parameters: [] responses: '202': description: accepted '400': description: Bad Request content: application/json: examples: Generic validation error: summary: Generic validation error value: errors: - title: Validation Failed detail: The value for `unexpected_key` is not allowed schema: $ref: '#/components/schemas/payto.generic_errors' '422': description: Unprocessable Entity content: application/json: examples: Debtor's financial institution does not support PayTo: summary: Debtor's financial institution does not support PayTo value: errors: - code: ZPSUS00 title: Incorrect agreement state detail: Agreement can not be suspended by the initiator while in the 'suspended' state schema: $ref: '#/components/schemas/payto.unprocessable_mandate_suspend_errors' '401': description: unauthorized content: application/json: examples: Unauthorised access token: summary: Unauthorised access token value: errors: - title: Unauthorised access token detail: Access token is expired or not valid links: about: https://docs.zeptopayments.com/docs/zepto-api#authentication-and-authorisation schema: $ref: '#/components/schemas/payto.generic_errors' '403': description: forbidden '404': description: Not Found '500': description: Internal Server Error requestBody: content: application/json: schema: type: object $ref: '#/components/schemas/payto.suspension_request' callbacks: payto_agreement.suspended: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.suspended requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.suspended' responses: '200': description: OK payto_agreement.suspension_failed: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.suspension_failed requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.suspension_failed' responses: '200': description: OK /payto/agreements/{agreement_uid}/reactivation: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' - name: agreement_uid in: path schema: type: string pattern: ^[A-Za-z0-9_~.-]{1,64}$ description: A supplied unique ID example: Agreement_00012345 required: true post: summary: reactivate agreement tags: - Agreement modification parameters: [] responses: '202': description: accepted '400': description: Bad Request content: application/json: examples: Generic validation error: summary: Generic validation error value: errors: - title: Validation Failed detail: The value for `invalid_key` is not allowed schema: $ref: '#/components/schemas/payto.generic_errors' '422': description: Unprocessable Entity content: application/json: examples: Agreement suspended by other party: summary: Agreement suspended by other party value: errors: - code: ZPREA00 title: Incorrect agreement state detail: Agreement cannot be reactivated by the initiator whilst in the 'active' state (set by the initiator) schema: $ref: '#/components/schemas/payto.unprocessable_mandate_reactivate_errors' '401': description: unauthorized content: application/json: examples: Unauthorised access token: summary: Unauthorised access token value: errors: - title: Unauthorised access token detail: Access token is expired or not valid links: about: https://docs.zeptopayments.com/docs/zepto-api#authentication-and-authorisation schema: $ref: '#/components/schemas/payto.generic_errors' '403': description: forbidden '404': description: Not Found '500': description: Internal Server Error requestBody: content: application/json: schema: type: object $ref: '#/components/schemas/payto.reactivation_request' callbacks: payto_agreement.reactivated: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.reactivated requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.reactivated' responses: '200': description: OK payto_agreement.reactivation_failed: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.reactivation_failed requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.reactivation_failed' responses: '200': description: OK /payto/agreements/{agreement_uid}/simulate_debtor_action: parameters: - $ref: '#/components/parameters/ZeptoAPIVersion' - name: agreement_uid in: path schema: type: string pattern: ^[A-Za-z0-9_~.-]{1,64}$ description: A supplied unique ID example: Agreement_00012345 required: true post: summary: simulate debtor [sandbox] tags: - Agreement modification description: '**SANDBOX ONLY** Enables simulation of actions debtor party can trigger for an agreement: `amendment`, `cancellation`, `suspension` & `reactivation`' parameters: [] responses: '202': description: accepted '400': description: Bad Request content: application/json: examples: Generic validation error: summary: Generic validation error value: errors: - title: Validation Failed detail: The value for `invalid_key` is not allowed schema: $ref: '#/components/schemas/payto.generic_errors' '422': description: Unprocessable Entity content: application/json: examples: Incorrect agreement state: summary: Incorrect agreement state value: errors: - code: ZPCAN00 title: Incorrect agreement state detail: Agreement can not be cancelled while in the 'cancelled' state Invalid value for type: summary: Invalid value for type value: errors: - code: ZPUNP00 title: One or more fields violate the relevant schema detail: params.debtor.account_identifier.value is in invalid format schema: $ref: '#/components/schemas/payto.unprocessable_mandate_simulate_debtor_action_errors' '401': description: unauthorized content: application/json: examples: Unauthorised access token: summary: Unauthorised access token value: errors: - title: Unauthorised access token detail: Access token is expired or not valid links: about: https://docs.zeptopayments.com/docs/zepto-api#authentication-and-authorisation schema: $ref: '#/components/schemas/payto.generic_errors' '403': description: forbidden '404': description: Not Found '500': description: Internal Server Error requestBody: content: application/json: schema: type: object $ref: '#/components/schemas/payto.simulate_debtor_action_request' callbacks: payto_agreement.cancelled: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.cancelled requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.cancelled' responses: '200': description: OK payto_agreement.suspended: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.suspended requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.suspended' responses: '200': description: OK payto_agreement.reactivated: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.reactivated requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.reactivated' responses: '200': description: OK payto_agreement.amended: DESTINATION_WEBHOOK_URL: post: summary: payto_agreement.amended requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/payto.webhook.payto_agreement.amended' responses: '200': description: OK components: schemas: payto.account_identifier: type: object description: An identifier representing the parties account required: - type - value properties: type: type: string enum: - bban - alias_phone - alias_email - alias_abn - alias_organisation_identifier value: anyOf: - $ref: '#/components/schemas/payto.account_identifiers_bban' - $ref: '#/components/schemas/payto.account_identifiers_alias_email' - $ref: '#/components/schemas/payto.account_identifiers_alias_phone' - $ref: '#/components/schemas/payto.account_identifiers_alias_abn' - $ref: '#/components/schemas/payto.account_identifiers_alias_organisation_identifier' payto.unprocessable_mandate_simulate_debtor_action_errors: type: object properties: errors: type: array minItems: 1 items: $ref: '#/components/schemas/payto.unprocessable_mandate_simulate_debtor_action_error' required: - errors payto.unprocessable_mandate_reactivate_errors: type: object properties: errors: type: array minItems: 1 items: $ref: '#/components/schemas/payto.unprocessable_mandate_reactivate_error' required: - errors payto.event.payto_agreement.reactivation_failed: allOf: - $ref: '#/components/schemas/payto.event.base' - $ref: '#/components/schemas/payto.event.agreement_action_failed' payto.webhook.payto_agreement.suspension_failed: allOf: - $ref: '#/components/schemas/payto.webhook.base' - type: object properties: data: $ref: '#/components/schemas/payto.event.payto_agreement.suspension_failed' - type: object example: data: type: payto_agreement.suspension_failed resource_type: payto_agreement links: resource: https://api.zeptopayments.com/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH payto.simulate_debtor_suspension_request: type: object required: - debtor_action - reason properties: debtor_action: type: string description: The debtor action to be triggered for simulation enum: - suspension example: suspension reason: type: string description: Reason for the agreement being suspended enum: - invalid_debtor_account_number - closed_account_number - closed_debtor_account_number - blocked_account - invalid_debtor_account_type - transaction_forbidden - transaction_not_supported - not_allowed_currency - not_allowed_amount - amount_exceeds_agreed_limit - customer_deceased - no_mandate_service_agent - no_mandate_service_customer - customer_requested - initiating_party_requested - mandate_expired - suspected_fraudulent - no_reason_customer - no_reason_agent - narrative - regulatory - no_service_debtor - creditor_not_whitelisted_by_debtor - creditor_blacklisted_by_debtor - contract_amended - debtor_cancellation_requested - contract_expired - mandate_suspended_final_collection - mandate_suspended_one_collection - mandate_suspended_failed_collections - no_answer example: customer_requested narrative: description: Free text field to store a description to accompany the given reason type: - string - 'null' minLength: 1 maxLength: 256 example: My custom description payto.simulate_debtor_amendment_request: type: object required: - debtor_action - changes properties: debtor_action: type: string description: The debtor action to be triggered for simulation enum: - amendment example: amendment changes: type: object required: - debtor properties: debtor: type: object description: Who and where the payment is taken from properties: ultimate_party_name: type: string example: Billie Jean Senior minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The ultimate debtor name for the account. party_name: type: string example: Billie Jean Junior minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The name of the debtor party for this agreement. account_identifier: type: object description: An identifier representing the parties account. In production, the debtor can only change the account_identifier to another value within the scope of the same BIC. This sandbox simulation does not enforce that scope. required: - type - value properties: type: type: string enum: - bban - alias_phone - alias_email - alias_abn - alias_organisation_identifier value: anyOf: - $ref: '#/components/schemas/payto.account_identifiers_bban' - $ref: '#/components/schemas/payto.account_identifiers_alias_email' - $ref: '#/components/schemas/payto.account_identifiers_alias_phone' - $ref: '#/components/schemas/payto.account_identifiers_alias_abn' - $ref: '#/components/schemas/payto.account_identifiers_alias_organisation_identifier' payto.webhook.payto_agreement.cancellation_failed: allOf: - $ref: '#/components/schemas/payto.webhook.base' - type: object properties: data: $ref: '#/components/schemas/payto.event.payto_agreement.cancellation_failed' - type: object example: data: type: payto_agreement.cancellation_failed resource_type: payto_agreement links: resource: https://api.zeptopayments.com/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH payto.event.payto_agreement.amendment_failed: allOf: - $ref: '#/components/schemas/payto.event.base' - type: object properties: body: type: object description: More information about the failure properties: failure: properties: title: type: string description: A short description of the reason or failure example: Agreement Status Invalid detail: type: string description: A longer description of the reason or failure example: Contact Zepto for more information - The requested operation cannot be performed for the current status of the agreement code: type: string description: A unique identifier for this specific type of reason or failure example: MMS.API.9104 enum: - MMS.API.9000 - MMS.API.9001 - MMS.API.9002 - MMS.API.9003 - MMS.API.9005 - MMS.API.9006 - MMS.API.9007 - MMS.API.9008 - MMS.API.9009 - MMS.API.9010 - MMS.API.9011 - MMS.API.9013 - MMS.API.9015 - MMS.API.9016 - MMS.API.9017 - MMS.API.9018 - MMS.API.9019 - MMS.API.9101 - MMS.API.9102 - MMS.API.9103 - MMS.API.9104 - MMS.API.9105 - MMS.API.9106 - MMS.API.9107 - MMS.API.9108 - MMS.API.9109 - MMS.API.9110 - MMS.API.9111 - MMS.API.9112 - MMS.API.9113 - MMS.API.9114 - MMS.API.9115 - MMS.API.9116 - MMS.API.9117 - MMS.API.9118 - MMS.API.9119 - MMS.API.9120 - MMS.API.9121 - MMS.API.9301 - MMS.API.9302 - MMS.API.9303 - MMS.API.9401 - MMS.API.9402 - MMS.API.9501 - MMS.API.9601 - MMS.API.9900 - MMS.API.9901 - ZPUNP01 - ZPUNP02 - ZPUNP06 - ZPUNP07 - ZPUNP08 - UKNWN required: - failure payto.webhook.payto_agreement.reactivated: allOf: - $ref: '#/components/schemas/payto.webhook.base' - type: object properties: data: $ref: '#/components/schemas/payto.event.payto_agreement.reactivated' - type: object example: data: type: payto_agreement.reactivated resource_type: payto_agreement links: resource: https://api.zeptopayments.com/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH payto.event.payto_agreement.amendment_recalled: allOf: - $ref: '#/components/schemas/payto.event.base' payto.unprocessable_amendment_recall_error: type: object additionalProperties: false required: - title - detail - code properties: title: type: string example: Title of error code: type: string description: A code assigned to the type of error received example: E100 enum: - ZPARE00 - ZPARE01 - ZPARE02 detail: type: string description: A short description of the error example: Description of error links: type: object properties: about: type: string description: An optional link to more information on the error example: https://docs.zeptopayments.com/docs/zepto-environments required: - about meta: type: object description: Optional meta information about the error properties: resource_ref: type: string description: Resource reference of the resource impacted by the error example: P2PAY.1000 resource_uid: type: string description: Supplied ID of the resource impacted by the error example: payment_34fj8djh2 payto.account_identifiers_alias_abn: type: string title: ABN alias description: A PayID ABN alias example: '123456789' pattern: ^((\d{9})|(\d{11}))$ payto.webhook.payto_agreement.amendment_expired: allOf: - $ref: '#/components/schemas/payto.webhook.base' - type: object properties: data: $ref: '#/components/schemas/payto.event.payto_agreement.amendment_expired' - type: object example: data: type: payto_agreement.amendment_expired resource_type: payto_agreement links: resource: https://api.zeptopayments.com/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH payto.amendment_recall_request: type: object properties: sandbox: type: object required: - simulate description: 'SANDBOX ONLY: Parameter that allows you to simulate certain scenarios in regards to the created amendment recall to aid integrators while testing their control flows.' properties: simulate: type: string enum: - amendment_applied delay: type: integer description: An optional attribute that will delay the requested simulation by the given amount of seconds. If `delay` is not provided (default behaviour), the simulated action will happen instantly. payto.webhook.base: type: object properties: data: $ref: '#/components/schemas/payto.event.base' links: type: object properties: resource: type: string description: The api url to the resource example: https://api.zeptopayments.com/payto/payments/biz_20221231_G7MQWwkQZIP8vbfH required: - data - links payto.webhook.payto_agreement.amendment_declined: allOf: - $ref: '#/components/schemas/payto.webhook.base' - type: object properties: data: $ref: '#/components/schemas/payto.event.payto_agreement.amendment_declined' - type: object example: data: type: payto_agreement.amendment_declined resource_type: payto_agreement links: resource: https://api.zeptopayments.com/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH payto.unprocessable_amendment_recall_errors: type: object properties: errors: type: array minItems: 1 items: $ref: '#/components/schemas/payto.unprocessable_amendment_recall_error' required: - errors payto.webhook.payto_agreement.amendment_failed: allOf: - $ref: '#/components/schemas/payto.webhook.base' - type: object properties: data: $ref: '#/components/schemas/payto.event.payto_agreement.amendment_failed' - type: object example: data: type: payto_agreement.amendment_failed resource_type: payto_agreement links: resource: https://api.zeptopayments.com/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH payto.account_identifiers_alias_phone: type: string title: Phone alias description: A PayID phone alias. e.g. +61-411222333 example: +61-411222333 pattern: ^\+[0-9]{1,3}-[1-9]{1,1}[0-9]{1,29}$ payto.unprocessable_mandate_reactivate_error: type: object additionalProperties: false required: - title - detail - code properties: title: type: string example: Title of error code: type: string description: A code assigned to the type of error received example: E100 enum: - ZPREA00 - ZPREA01 detail: type: string description: A short description of the error example: Description of error links: type: object properties: about: type: string description: An optional link to more information on the error example: https://docs.zeptopayments.com/docs/zepto-environments required: - about meta: type: object description: Optional meta information about the error properties: resource_ref: type: string description: Resource reference of the resource impacted by the error example: P2PAY.1000 resource_uid: type: string description: Supplied ID of the resource impacted by the error example: payment_34fj8djh2 payto.reactivation_request: type: object properties: sandbox: type: object required: - simulate description: 'SANDBOX ONLY: Parameter that allows you to simulate certain scenarios in regards to the created agreement reactivation to aid integrators while testing their control flows.' properties: simulate: type: string enum: - agreement_cancelled - successful_reactivation delay: type: integer description: An optional attribute that will delay the requested simulation by the given amount of seconds. If `delay` is not provided (default behaviour), the simulated action will happen instantly. payto.event.payto_agreement.cancelled: allOf: - $ref: '#/components/schemas/payto.event.base' - type: object properties: body: type: object properties: caused_by: type: string description: The party that caused the agreement to be cancelled enum: - debtor - initiator - zepto_admin - zepto_system reason: properties: title: type: string description: A short description of the reason or failure example: Agreement Status Invalid detail: type: string description: A longer description of the reason or failure example: Contact Zepto for more information - The requested operation cannot be performed for the current status of the agreement code: type: string description: A unique identifier for this specific type of reason or failure example: MMS.API.9104 enum: - AC02 - AC04 - AC05 - AC06 - AC13 - AG01 - AG03 - AM03 - AM12 - AM14 - MD07 - MD08 - MD09 - MD16 - MD17 - MD20 - MD21 - MS02 - MS03 - NARR - RR04 - SL01 - SL11 - SL12 - CTAM - CTCA - CTEX - MCFC - MCOC - MSUC - NOAS narrative: description: Free text description to accompany the given reason type: - string - 'null' minLength: 1 maxLength: 256 example: custom description payto.event.base: type: object properties: id: type: string description: The ID of event that triggered the webhook delivery. Value is a UUIDv7 example: 019c6f54-1117-7a38-89ae-841bb4e4ac67 type: type: string description: Type of event that triggered the webhook delivery example: payto_payment.settled published_at: type: string format: date-time description: When the event was published by Zepto example: '2023-03-07T22:50:40Z' resource_uid: type: string pattern: ^[A-Za-z0-9_~.-]{1,64}$ description: Supplied unique identifier for resource that the event affected, maximum 64 characters containing only unreserved characters as defined in RFC3986. example: biz_20221231_G7MQWwkQZIP8vbfH minLength: 1 maxLength: 64 resource_type: type: string description: The type of resource the resource_uid relates to enum: - payto_agreement - payto_payment - payto_refund example: payto_payment body: type: - object - 'null' example: null required: - id - type - published_at - resource_uid - resource_type - body payto.event.payto_agreement.amendment_expired: allOf: - $ref: '#/components/schemas/payto.event.base' payto.event.payto_agreement.amendment_declined: allOf: - $ref: '#/components/schemas/payto.event.base' - type: object properties: body: type: object properties: caused_by: type: string description: The party that caused the amendment to be declined enum: - debtor payto.event.payto_agreement.amended: allOf: - $ref: '#/components/schemas/payto.event.base' - type: object properties: body: type: object required: - caused_by - changes properties: caused_by: type: string description: The party that caused the amendment enum: - debtor - initiator changes: type: object properties: description: type: string example: 'Payment plan for loan #1234' pattern: ^[ -~]+$ minLength: 1 maxLength: 140 description: The reason for the agreement, as narrative text. ASCII-printable characters only. validity_end_date: type: - string - 'null' format: date description: End date of the validity of the agreement. If specified, the agreement will be valid until 23:59:59.999 Australia Sydney time on this date. pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ example: '2023-12-31' payment_terms: type: object properties: type: type: string description: The pattern that payments will follow enum: - balloon - fixed - usage_based - variable example: fixed frequency: type: string description: The frequency at which payments will be made. Can be used in conjunction with `count` to allow more than one payment per period. enum: - adhoc - daily - weekly - fortnightly - monthly - quarterly - semi_annual - annual example: monthly count: type: - integer - 'null' description: Count of payments allowed per frequency period. With non-adhoc frequency periods, if count is not given, one payment per frequency period will be allowed. If frequency is adhoc and count is not given, unlimited payments will be allowed. example: 1 minimum: 1 amount: type: - integer - 'null' description: Fixed amount to be debited from the debtor's account. Required for 'fixed' and 'balloon' types. example: 10000 minimum: 1 maximum: 1000000000 max_amount: type: - integer - 'null' description: The maximum allowed payment amount, in cents. example: 100000 minimum: 1 maximum: 1000000000 first_payment_amount: type: - integer - 'null' description: Optional specified payment amount for first payment, in cents. Applicable only to 'balloon' terms type. example: 100000 minimum: 1 maximum: 1000000000 last_payment_amount: type: - integer - 'null' description: Optional specified payment amount for last payment, in cents. Applicable only to 'balloon' terms type. example: 100000 minimum: 1 maximum: 1000000000 first_payment_date: type: - string - 'null' format: date description: The date first payment will be initiated for agreement. Date timezone is Australia Sydney. pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ example: '2023-12-31' last_payment_date: type: - string - 'null' format: date description: The date last payment will be initiated for agreement. Date timezone is Australia Sydney. pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ example: '2024-12-31' creditor: type: object description: Who and where the payment will be made to properties: ultimate_party_name: type: string example: Billie Jean Senior minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The ultimate creditor name must accurately represent the ultimate creditor party and may be the same as the party_name. HTML name entities are not allowed. party_name: type: string example: Billie Jean Junior minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The name of the creditor party must accurately represent the creditor party and may be the same as the ultimate_party_name. HTML name entities are not allowed. account_identifier: $ref: '#/components/schemas/payto.account_identifier' debtor: type: object description: Who and where the payment is taken from properties: ultimate_party_name: type: string example: Billie Jean Senior minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The ultimate debtor name for the account. Defaults to `party_name` if not provided. HTML name entities are not allowed. party_name: type: string example: Billie Jean Junior minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The name of the debtor party for this agreement. HTML name entities are not allowed. account_identifier: $ref: '#/components/schemas/payto.account_identifier' initiator: type: object description: The details of the party that initiated this agreement properties: name: type: string example: Jane's Flowers minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The name of the initating party for this agreement. Displayed to the end customer by their financial institution. HTML name entities are not allowed. legal_name: type: string example: Blossoming Flowers Pty Ltd minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The legal name of the initating party for this agreement. HTML name entities are not allowed. abn: type: - string - 'null' example: '56192755287' minLength: 11 maxLength: 11 pattern: ^\d{11}$ description: The Australian Business Number (ABN) of the initiating party for this agreement. acn: type: - string - 'null' example: '192755287' minLength: 9 maxLength: 9 pattern: ^\d{9}$ description: The Australian Company Number (ACN) of the initiating party for this agreement. payto.webhook.payto_agreement.cancelled: allOf: - $ref: '#/components/schemas/payto.webhook.base' - type: object properties: data: $ref: '#/components/schemas/payto.event.payto_agreement.cancelled' - type: object example: data: type: payto_agreement.cancelled resource_type: payto_agreement links: resource: https://api.zeptopayments.com/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH payto.account_identifiers_alias_email: type: string title: Email alias description: A PayID email alias example: default@example.com pattern: ^(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)$ payto.simulate_debtor_reactivation_request: type: object required: - debtor_action properties: debtor_action: type: string description: The debtor action to be triggered for simulation enum: - reactivation example: reactivation payto.cancellation_request: type: object required: - reason properties: reason: type: string description: Reason for the agreement being cancelled enum: - customer_requested - initiating_party_requested - mandate_expired - mandate_suspended_final_collection - mandate_suspended_one_collection example: initiating_party_requested narrative: description: Free text field to store a description to accompany the given reason_code type: - string - 'null' minLength: 1 maxLength: 256 example: My custom description sandbox: type: object required: - simulate description: 'SANDBOX ONLY: Parameter that allows you to simulate the certain scenarios related to the cancellation of an agreement to aid integrators while testing their control flows.' properties: simulate: type: string enum: - agreement_cancelled - successful_cancellation delay: type: integer description: An optional attribute that will delay the requested simulation by the given amount of seconds. If `delay` is not provided (default behaviour), the simulated action will happen instantly. payto.unprocessable_mandate_error: type: object additionalProperties: false required: - title - detail - code properties: title: type: string example: Title of error code: type: string description: A code assigned to the type of error received example: E100 enum: - ZPUNP00 - ZPUNP01 - ZPUNP02 - ZPUNP03 - ZPUNP04 - ZPUNP05 - ZPUNP06 - ZPUNP07 - ZPUNP08 - ZPUNP09 - ZPAGR00 - ZPAGR01 - ZPAGR02 - ZPAGR03 - ZPAGR04 - ZPAGR05 - ZPAGR06 - ZPAGR07 - ZPAGR08 - ZPAGR09 - ZPAGR10 - ZPAGR11 - ZPAGR12 - ZPAGR13 - ZPAGR14 - ZPAGR15 - ZPAGR16 - ZPAGR17 - ZPAGR18 detail: type: string description: A short description of the error example: Description of error links: type: object properties: about: type: string description: An optional link to more information on the error example: https://docs.zeptopayments.com/docs/zepto-environments required: - about meta: type: object description: Optional meta information about the error properties: resource_ref: type: string description: Resource reference of the resource impacted by the error example: P2PAY.1000 resource_uid: type: string description: Supplied ID of the resource impacted by the error example: payment_34fj8djh2 payto.suspension_request: type: object required: - reason properties: reason: type: string description: Reason for the agreement being suspended enum: - customer_requested - initiating_party_requested - mandate_suspended_final_collection - mandate_suspended_one_collection example: initiating_party_requested narrative: description: Free text field to store a description to accompany the given reason_code type: - string - 'null' minLength: 1 maxLength: 256 example: My custom description sandbox: type: object required: - simulate description: 'SANDBOX ONLY: Parameter that allows you to simulate certain scenarios in regards to the created agreement suspension to aid integrators while testing their control flows.' properties: simulate: type: string enum: - agreement_cancelled - successful_suspension delay: type: integer description: An optional attribute that will delay the requested simulation by the given amount of seconds. If `delay` is not provided (default behaviour), the simulated action will happen instantly. payto.webhook.payto_agreement.amendment_recall_failed: allOf: - $ref: '#/components/schemas/payto.webhook.base' - type: object properties: data: $ref: '#/components/schemas/payto.event.payto_agreement.amendment_recall_failed' - type: object example: data: type: payto_agreement.amendment_recall_failed resource_type: payto_agreement links: resource: https://api.zeptopayments.com/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH payto.unprocessable_mandate_suspend_errors: type: object properties: errors: type: array minItems: 1 items: $ref: '#/components/schemas/payto.unprocessable_mandate_suspend_error' required: - errors payto.event.agreement_action_failed: type: object properties: body: type: object description: More information about the failure properties: failure: properties: title: type: string description: A short description of the reason or failure example: Agreement Status Invalid detail: type: string description: A longer description of the reason or failure example: Contact Zepto for more information - The requested operation cannot be performed for the current status of the agreement code: type: string description: A unique identifier for this specific type of reason or failure example: MMS.API.9104 enum: - MMS.API.9000 - MMS.API.9001 - MMS.API.9002 - MMS.API.9003 - MMS.API.9005 - MMS.API.9006 - MMS.API.9007 - MMS.API.9008 - MMS.API.9009 - MMS.API.9010 - MMS.API.9011 - MMS.API.9013 - MMS.API.9015 - MMS.API.9016 - MMS.API.9017 - MMS.API.9018 - MMS.API.9019 - MMS.API.9101 - MMS.API.9102 - MMS.API.9103 - MMS.API.9104 - MMS.API.9105 - MMS.API.9106 - MMS.API.9107 - MMS.API.9108 - MMS.API.9109 - MMS.API.9110 - MMS.API.9111 - MMS.API.9112 - MMS.API.9113 - MMS.API.9114 - MMS.API.9115 - MMS.API.9116 - MMS.API.9117 - MMS.API.9118 - MMS.API.9119 - MMS.API.9120 - MMS.API.9121 - MMS.API.9301 - MMS.API.9302 - MMS.API.9303 - MMS.API.9401 - MMS.API.9402 - MMS.API.9501 - MMS.API.9601 - MMS.API.9900 - MMS.API.9901 - UKNWN required: - failure payto.webhook.payto_agreement.amended: allOf: - $ref: '#/components/schemas/payto.webhook.base' - type: object properties: data: $ref: '#/components/schemas/payto.event.payto_agreement.amended' - type: object example: data: type: payto_agreement.amended resource_type: payto_agreement links: resource: https://api.zeptopayments.com/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH payto.simulate_debtor_cancellation_request: type: object required: - debtor_action - reason properties: debtor_action: type: string description: The debtor action to be triggered for simulation enum: - cancellation example: cancellation reason: type: string description: Reason for the agreement being cancelled enum: - invalid_debtor_account_number - closed_account_number - closed_debtor_account_number - blocked_account - invalid_debtor_account_type - transaction_forbidden - transaction_not_supported - not_allowed_currency - not_allowed_amount - amount_exceeds_agreed_limit - customer_deceased - no_mandate_service_agent - no_mandate_service_customer - customer_requested - initiating_party_requested - mandate_expired - suspected_fraudulent - no_reason_customer - no_reason_agent - narrative - regulatory - no_service_debtor - creditor_not_whitelisted_by_debtor - creditor_blacklisted_by_debtor - contract_amended - debtor_cancellation_requested - contract_expired - mandate_suspended_final_collection - mandate_suspended_one_collection - mandate_suspended_failed_collections - no_answer example: customer_requested narrative: description: Free text field to store a description to accompany the given reason type: - string - 'null' minLength: 1 maxLength: 256 example: My custom description payto.unprocessable_mandate_cancel_errors: type: object properties: errors: type: array minItems: 1 items: $ref: '#/components/schemas/payto.unprocessable_mandate_cancel_error' required: - errors payto.simulate_debtor_action_request: type: object anyOf: - $ref: '#/components/schemas/payto.simulate_debtor_cancellation_request' - $ref: '#/components/schemas/payto.simulate_debtor_suspension_request' - $ref: '#/components/schemas/payto.simulate_debtor_reactivation_request' - $ref: '#/components/schemas/payto.simulate_debtor_amendment_request' discriminator: propertyName: debtor_action mapping: cancellation: '#/components/schemas/payto.simulate_debtor_cancellation_request' suspension: '#/components/schemas/payto.simulate_debtor_suspension_request' reactivation: '#/components/schemas/payto.simulate_debtor_reactivation_request' amendment: '#/components/schemas/payto.simulate_debtor_amendment_request' payto.event.payto_agreement.suspension_failed: allOf: - $ref: '#/components/schemas/payto.event.base' - $ref: '#/components/schemas/payto.event.agreement_action_failed' payto.event.payto_agreement.suspended: allOf: - $ref: '#/components/schemas/payto.event.base' - type: object properties: body: type: object properties: caused_by: type: string description: The party that caused the agreement to be suspended enum: - debtor - initiator - zepto_admin - zepto_system reason: properties: title: type: string description: A short description of the reason or failure example: Agreement Status Invalid detail: type: string description: A longer description of the reason or failure example: Contact Zepto for more information - The requested operation cannot be performed for the current status of the agreement code: type: string description: A unique identifier for this specific type of reason or failure example: MMS.API.9104 enum: - AC02 - AC04 - AC05 - AC06 - AC13 - AG01 - AG03 - AM03 - AM12 - AM14 - MD07 - MD08 - MD09 - MD16 - MD17 - MD20 - MD21 - MS02 - MS03 - NARR - RR04 - SL01 - SL11 - SL12 - CTAM - CTCA - CTEX - MCFC - MCOC - MSUC - NOAS narrative: description: Free text description to accompany the given reason_code type: - string - 'null' minLength: 1 maxLength: 256 example: custom description payto.reason: type: - object - 'null' description: Details about the reason for the resource being in its current state properties: title: type: string description: A short description of the reason or failure example: Agreement Status Invalid detail: type: string description: A longer description of the reason or failure example: Contact Zepto for more information - The requested operation cannot be performed for the current status of the agreement code: type: string description: A unique identifier for this specific type of reason or failure example: MMS.API.9104 enum: - MMS.API.9000 - MMS.API.9001 - MMS.API.9002 - MMS.API.9003 - MMS.API.9005 - MMS.API.9006 - MMS.API.9007 - MMS.API.9008 - MMS.API.9009 - MMS.API.9010 - MMS.API.9011 - MMS.API.9013 - MMS.API.9015 - MMS.API.9016 - MMS.API.9017 - MMS.API.9018 - MMS.API.9019 - MMS.API.9101 - MMS.API.9102 - MMS.API.9103 - MMS.API.9104 - MMS.API.9105 - MMS.API.9106 - MMS.API.9107 - MMS.API.9108 - MMS.API.9109 - MMS.API.9110 - MMS.API.9111 - MMS.API.9112 - MMS.API.9113 - MMS.API.9114 - MMS.API.9115 - MMS.API.9116 - MMS.API.9117 - MMS.API.9118 - MMS.API.9119 - MMS.API.9120 - MMS.API.9121 - MMS.API.9301 - MMS.API.9302 - MMS.API.9303 - MMS.API.9401 - MMS.API.9402 - MMS.API.9501 - MMS.API.9601 - MMS.API.9900 - MMS.API.9901 - AVED - BVSD - MCGP - NACT - AC02 - AC05 - AC06 - AC13 - AG01 - AG03 - AM03 - AM12 - AM14 - BE06 - MD09 - MD16 - MD21 - NOAS - RR04 - SL11 - SL12 - AB01 - AB02 - AB03 - AB04 - AB08 - AC03 - AC07 - AC14 - AC15 - AG07 - AGNT - AM01 - AM02 - AM04 - AM06 - AM09 - AM19 - AM21 - BE05 - BE08 - BE22 - CH20 - CH21 - CURR - CUST - DT02 - DT04 - ED05 - ED06 - FF04 - FF08 - FF10 - FF11 - FRAD - MD01 - MD02 - MD20 - MS02 - MS03 - NARR - NAUT - RR02 - RR03 - RC05 - SL01 - SL13 - SL14 - TD03 - TM01 - ZPPAY24 - AC04 - MD07 - MD08 - MD17 - CTAM - CTCA - CTEX - MCFC - MCOC - MSUC - ZPUNP01 - ZPUNP02 - ZPUNP06 - ZPUNP07 - ZPUNP08 - ZPPAY00 - ZPREF07 - UKNWN - UKNWN required: - title - detail - code payto.generic_error: type: object additionalProperties: false properties: title: type: string example: Title of error detail: type: string description: A short description of the error example: Description of error links: type: object properties: about: type: string description: An optional link to more information on the error example: https://docs.zeptopayments.com/docs/zepto-environments required: - about meta: type: object description: Optional meta information about the error properties: resource_ref: type: string description: Resource reference of the resource impacted by the error example: P2PAY.1000 resource_uid: type: string description: Supplied ID of the resource impacted by the error example: payment_34fj8djh2 required: - title - detail payto.account_identifiers_alias_organisation_identifier: type: string title: Organisation alias description: A PayID organisation identifier alias example: Zepto Pty Ltd, Byron Bay NSW pattern: ^[!-@\[-~][ -@\[-~]{0,254}[!-@\[-~]$ payto.amendment_request: type: object required: - changes properties: sandbox: type: object required: - simulate description: 'SANDBOX ONLY: Parameter that allows you to simulate the debtor performing certain actions against the created amendment to aid integrators while testing their control flows.' properties: simulate: type: string enum: - debtor_accept - debtor_decline - agreement_cancelled - expire - creditor_alias_not_found - alias_resolution_service_unavailable delay: type: integer description: An optional attribute that will delay the requested simulation by the given amount of seconds. If `delay` is not provided (default behaviour), the simulated action will happen instantly. changes: type: object description: Changes to be applied to the mandate. Use `null` values to clear existing attributes, or provide new values to update them in the mandate. properties: description: type: string example: 'Payment plan for loan #1234' pattern: ^[ -~]+$ minLength: 1 maxLength: 140 description: The reason for the agreement, as narrative text. ASCII-printable characters only. validity_end_date: type: - string - 'null' format: date description: End date of the validity of the agreement. If specified, the agreement will be valid until 23:59:59.999 Australia Sydney time on this date. pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ example: '2023-12-31' payment_terms: type: object properties: type: type: string description: The pattern that payments will follow enum: - balloon - fixed - usage_based - variable example: fixed frequency: type: string description: The frequency at which payments will be made. Can be used in conjunction with `count` to allow more than one payment per period. enum: - adhoc - daily - weekly - fortnightly - monthly - quarterly - semi_annual - annual example: monthly count: type: - integer - 'null' description: Count of payments allowed per frequency period. With non-adhoc frequency periods, if count is not given, one payment per frequency period will be allowed. If frequency is adhoc and count is not given, unlimited payments will be allowed. example: 1 minimum: 1 amount: type: - integer - 'null' description: Fixed amount to be debited from the debtor's account. Required for 'fixed' and 'balloon' types. example: 10000 minimum: 1 maximum: 1000000000 max_amount: type: - integer - 'null' description: The maximum allowed payment amount, in cents. example: 100000 minimum: 1 maximum: 1000000000 first_payment_amount: type: - integer - 'null' description: Optional specified payment amount for first payment, in cents. Applicable only to 'balloon' terms type. example: 100000 minimum: 1 maximum: 1000000000 last_payment_amount: type: - integer - 'null' description: Optional specified payment amount for last payment, in cents. Applicable only to 'balloon' terms type. example: 100000 minimum: 1 maximum: 1000000000 first_payment_date: type: - string - 'null' format: date description: The date first payment will be initiated for agreement. Date timezone is Australia Sydney. pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ example: '2023-12-31' last_payment_date: type: - string - 'null' format: date description: The date last payment will be initiated for agreement. Date timezone is Australia Sydney. pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ example: '2024-12-31' creditor: type: object description: Who and where the payment will be made to properties: ultimate_party_name: type: string example: Billie Jean Senior minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The ultimate creditor name for the account. HTML name entities are not allowed. party_name: type: string example: Billie Jean Junior minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The name of the creditor party must accurately represent the creditor party and may be the same as the ultimate_party_name. HTML name entities are not allowed. account_identifier: $ref: '#/components/schemas/payto.account_identifier' initiator: type: object description: The details of the party that initiated this agreement properties: name: type: string example: Jane's Flowers minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The name of the initating party for this agreement. Displayed to the end customer by their financial institution. HTML name entities are not allowed. legal_name: type: string example: Blossoming Flowers Pty Ltd minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The legal name of the initating party for this agreement. HTML name entities are not allowed. abn: type: - string - 'null' example: '56192755287' minLength: 11 maxLength: 11 pattern: ^\d{11}$ description: The Australian Business Number (ABN) of the initiating party for this agreement. acn: type: - string - 'null' example: '192755287' minLength: 9 maxLength: 9 pattern: ^\d{9}$ description: The Australian Company Number (ACN) of the initiating party for this agreement. resolution_requested_before: type: - string - 'null' format: date-time description: Requested resolution (accept/decline) deadline for this amendment. It will be provided in any notification sent to the debtor. This time is for informational purposes only and does not affect the expiry time. If not provided, it defaults to 5 days from amendment creation. Value must be an ISO8601 date-time in UTC timezone. example: '2022-01-20T12:34:56Z' payto.webhook.payto_agreement.reactivation_failed: allOf: - $ref: '#/components/schemas/payto.webhook.base' - type: object properties: data: $ref: '#/components/schemas/payto.event.payto_agreement.reactivation_failed' - type: object example: data: type: payto_agreement.reactivation_failed resource_type: payto_agreement links: resource: https://api.zeptopayments.com/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH payto.unprocessable_mandate_errors: type: object properties: errors: type: array minItems: 1 items: $ref: '#/components/schemas/payto.unprocessable_mandate_error' required: - errors payto.event.payto_agreement.amendment_recall_failed: allOf: - $ref: '#/components/schemas/payto.event.base' - $ref: '#/components/schemas/payto.event.agreement_action_failed' payto.event.payto_agreement.cancellation_failed: allOf: - $ref: '#/components/schemas/payto.event.base' - $ref: '#/components/schemas/payto.event.agreement_action_failed' payto.amendment: type: object additionalProperties: false required: - agreement_uid - changes - state - actor - failure - created_at - resolution_requested_before - links properties: agreement_uid: type: string pattern: ^[A-Za-z0-9_~.-]{1,64}$ description: Supplied unique identifier for the related agreement example: biz_agreement_G7MQWwkQZIP8vbfH minLength: 1 maxLength: 64 changes: type: object description: Changes to be applied to the mandate. Use `null` values to clear existing attributes, or provide new values to update them in the mandate. properties: description: type: string example: 'Payment plan for loan #1234' pattern: ^[ -~]+$ minLength: 1 maxLength: 140 description: The reason for the agreement, as narrative text. ASCII-printable characters only. validity_end_date: type: - string - 'null' format: date description: End date of the validity of the agreement. If specified, the agreement will be valid until 23:59:59.999 Australia Sydney time on this date. pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ example: '2023-12-31' payment_terms: type: object properties: type: type: string description: The pattern that payments will follow enum: - balloon - fixed - usage_based - variable example: fixed frequency: type: string description: The frequency at which payments will be made. Can be used in conjunction with `count` to allow more than one payment per period. enum: - adhoc - daily - weekly - fortnightly - monthly - quarterly - semi_annual - annual example: monthly count: type: - integer - 'null' description: Count of payments allowed per frequency period. With non-adhoc frequency periods, if count is not given, one payment per frequency period will be allowed. If frequency is adhoc and count is not given, unlimited payments will be allowed. example: 1 minimum: 1 amount: type: - integer - 'null' description: Fixed amount to be debited from the debtor's account. Required for 'fixed' and 'balloon' types. example: 10000 minimum: 1 maximum: 1000000000 max_amount: type: - integer - 'null' description: The maximum allowed payment amount, in cents. example: 100000 minimum: 1 maximum: 1000000000 first_payment_amount: type: - integer - 'null' description: Optional specified payment amount for first payment, in cents. Applicable only to 'balloon' terms type. example: 100000 minimum: 1 maximum: 1000000000 last_payment_amount: type: - integer - 'null' description: Optional specified payment amount for last payment, in cents. Applicable only to 'balloon' terms type. example: 100000 minimum: 1 maximum: 1000000000 first_payment_date: type: - string - 'null' format: date description: The date first payment will be initiated for agreement. Date timezone is Australia Sydney. pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ example: '2023-12-31' last_payment_date: type: - string - 'null' format: date description: The date last payment will be initiated for agreement. Date timezone is Australia Sydney. pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ example: '2024-12-31' creditor: type: object description: Who and where the payment will be made to properties: ultimate_party_name: type: string example: Billie Jean Senior minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The ultimate creditor name for the account. HTML name entities are not allowed. party_name: type: string example: Billie Jean Junior minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The name of the creditor party must accurately represent the creditor party and may be the same as the ultimate_party_name. HTML name entities are not allowed. account_identifier: $ref: '#/components/schemas/payto.account_identifier' initiator: type: object description: The details of the party that initiated this agreement properties: name: type: string example: Jane's Flowers minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The name of the initating party for this agreement. Displayed to the end customer by their financial institution. HTML name entities are not allowed. legal_name: type: string example: Blossoming Flowers Pty Ltd minLength: 1 maxLength: 140 pattern: ^[ -~]+$ description: The legal name of the initating party for this agreement. HTML name entities are not allowed. abn: type: - string - 'null' example: '56192755287' minLength: 11 maxLength: 11 pattern: ^\d{11}$ description: The Australian Business Number (ABN) of the initiating party for this agreement. acn: type: - string - 'null' example: '192755287' minLength: 9 maxLength: 9 pattern: ^\d{9}$ description: The Australian Company Number (ACN) of the initiating party for this agreement. resolution_requested_before: type: - string - 'null' format: date-time description: Requested resolution (accept/decline) deadline for this amendment. It will be provided in any notification sent to the debtor. This time is for informational purposes only and does not affect the expiry time. If not provided, it defaults to 5 days from amendment creation. Value must be an ISO8601 date-time in UTC timezone. example: '2022-01-20T12:34:56Z' state: type: string description: Amendment status in Zepto system enum: - pending - failed - created - applied - declined - expired - recalled actor: type: string description: The party that initiated the amendment action enum: - debtor - initiator failure: $ref: '#/components/schemas/payto.reason' created_at: type: string format: date-time links: type: object required: - agreement properties: agreement: type: string description: A URL to the associated agreement example: https://api.zeptopayments.com/payto/agreements/biz_agreement_G7MQWwkQZIP8vbfH additionalProperties: false payto.unprocessable_mandate_simulate_debtor_action_error: type: object additionalProperties: false required: - title - detail - code properties: title: type: string example: Title of error code: type: string description: A code assigned to the type of error received example: E100 enum: - ZPCAN00 - ZPCAN01 - ZPSUS00 - ZPSUS01 - ZPREA00 - ZPREA01 - ZPUNP00 - ZPUNP01 - ZPUNP02 - ZPUNP03 - ZPUNP04 - ZPUNP05 - ZPUNP06 - ZPUNP07 - ZPUNP08 - ZPUNP09 detail: type: string description: A short description of the error example: Description of error links: type: object properties: about: type: string description: An optional link to more information on the error example: https://docs.zeptopayments.com/docs/zepto-environments required: - about meta: type: object description: Optional meta information about the error properties: resource_ref: type: string description: Resource reference of the resource impacted by the error example: P2PAY.1000 resource_uid: type: string description: Supplied ID of the resource impacted by the error example: payment_34fj8djh2 payto.account_identifiers_bban: type: string title: BBAN description: A branch code (BSB) and account number separated with a hyphen example: 123456-98765432 pattern: ^\d{6}-[ -~]{1,28}$ payto.webhook.payto_agreement.suspended: allOf: - $ref: '#/components/schemas/payto.webhook.base' - type: object properties: data: $ref: '#/components/schemas/payto.event.payto_agreement.suspended' - type: object example: data: type: payto_agreement.suspended resource_type: payto_agreement links: resource: https://api.zeptopayments.com/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH payto.generic_errors: type: object properties: errors: type: array minItems: 1 items: $ref: '#/components/schemas/payto.generic_error' required: - errors payto.webhook.payto_agreement.amendment_recalled: allOf: - $ref: '#/components/schemas/payto.webhook.base' - type: object properties: data: $ref: '#/components/schemas/payto.event.payto_agreement.amendment_recalled' - type: object example: data: type: payto_agreement.amendment_recalled resource_type: payto_agreement links: resource: https://api.zeptopayments.com/payto/agreements/biz_20221231_G7MQWwkQZIP8vbfH payto.unprocessable_mandate_suspend_error: type: object additionalProperties: false required: - title - detail - code properties: title: type: string example: Title of error code: type: string description: A code assigned to the type of error received example: E100 enum: - ZPSUS00 - ZPSUS01 detail: type: string description: A short description of the error example: Description of error links: type: object properties: about: type: string description: An optional link to more information on the error example: https://docs.zeptopayments.com/docs/zepto-environments required: - about meta: type: object description: Optional meta information about the error properties: resource_ref: type: string description: Resource reference of the resource impacted by the error example: P2PAY.1000 resource_uid: type: string description: Supplied ID of the resource impacted by the error example: payment_34fj8djh2 payto.unprocessable_mandate_cancel_error: type: object additionalProperties: false required: - title - detail - code properties: title: type: string example: Title of error code: type: string description: A code assigned to the type of error received example: E100 enum: - ZPCAN00 - ZPCAN01 detail: type: string description: A short description of the error example: Description of error links: type: object properties: about: type: string description: An optional link to more information on the error example: https://docs.zeptopayments.com/docs/zepto-environments required: - about meta: type: object description: Optional meta information about the error properties: resource_ref: type: string description: Resource reference of the resource impacted by the error example: P2PAY.1000 resource_uid: type: string description: Supplied ID of the resource impacted by the error example: payment_34fj8djh2 payto.event.payto_agreement.reactivated: allOf: - $ref: '#/components/schemas/payto.event.base' - type: object properties: body: type: object properties: caused_by: type: string description: The party that caused the agreement to be reactivated enum: - debtor - initiator - zepto_admin - zepto_system 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: http scheme: bearer externalDocs: description: Zepto API v1.0 url: https://docs.zeptopayments.com