Contacts (Receivable)

Add a Receivable Contact

Changed on

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.

<aside class="notice"> To enable this feature, please contact our support team with the following information: <li>Your full legal business name</li> <li>A legally owned domain name: for your PayID email addresses</li> <li><strong>payid_name</strong>: the business name that will be displayed to your customers for PayID and Confirmation of Payee (CoP) resolutions. We suggest using a shortened name appropriate for mobile displays</li> </aside> <br> <aside class="notice"> There are two strategies supported for PayID assignment when creating this type of Contact: <li><strong>On-demand PayID</strong>: provide a <code>payid_email</code> and we'll create a contact and register a PayID with the given email address. The PayID registration process happens when the request is received. The initial response for <code>payid_details.state</code> will always be <code>pending</code>. It will transition to <code>active</code> when the PayID registration process is complete. This can take up to a few seconds. You can use webhooks to be informed of this state change.</li> <li><strong>Pooled PayID</strong>: provide your <code>payid_email_domain</code> and we'll create a contact and assign them a PayID from your pool. Pooled PayIDs are pre-registered. The PayID email value is generated using a random value and the email domain from your PayID pool configuration. Providing both <code>payid_email</code> and <code>payid_email_domain</code> will ignore your pool and use the "On-demand PayID" strategy instead.</li> </aside> <br> <aside class="notice"> <strong>Receivable Contacts for your clients</strong>: with the "On-demand PayID" strategy you can supply the optional <code>client_id</code> of a client registered via the <a href="https://docs.zeptopayments.com/v20260901/reference/post_clients">Clients API</a>. Zepto registers the Contact's float account and PayID under that client, and payers see the client's legal name in PayID and Confirmation of Payee (CoP) resolutions. To show one of the client's registered business names instead, supply it as <code>payid_name</code>. Without a <code>client_id</code> supplied, payers see the default <code>payid_name</code> supplied during onboarding. Pooled PayIDs ignore <code>client_id</code>. </aside> <br> <aside class="notice"> While unlikely, it is possible that we will be unable to register the given PayID. In this case <code>payid_details.state</code> will transition to <code>failed</code>.

You can simulate this path in sandbox by adding <code>+failure</code> to your <code>payid_email</code> e.g <code>test+failure@zeptopayments.com</code>

</aside> <aside class="notice"> You can test receiving payments to a Receivable Contact in our sandbox environment using the <a href="https://docs.zeptopayments.com/reference/simulateincomingpayidpayment">PayID simulation endpoint</a>. </aside>
post/contacts/receivable

Request

  • Base URL
    https://api.sandbox.zeptopayments.com
  • URL
    https://api.sandbox.zeptopayments.com/contacts/receivable
  • Auth
    OAuth 2
    Authorization code: /oauth/authorize
    Token URL: /oauth/token

Request body

namestring required

Contact name (Min: 3 - Max: 140)

emailstring required

Contact email (Min: 6 - Max: 256)

payid_emailstring

Contact PayID email (Min: 6 - Max: 256)

payid_email_domainstring

PayID pool email domain (Min: 3 - Max: 254)

client_idstring uuid

Client to register the Contact's PayID and float account under. On-demand PayID strategy only. The client must have active RTP service.

payid_namestring

The name shown to payers in PayID and Confirmation of Payee resolutions. Customisation requires an accompanying client_id and must match the supplied client's legal name or one of its business names.

metadataMetadata

Use for your custom data and certain Zepto customisations.

Example request

{
  "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"
  }
}

Response

Created

Example response

{
  "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"
    }
  }
}

Changes

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the non-success response with the status