Contacts (Receivable)
Add a Receivable Contact
Changed onReceive 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 URLhttps://api.sandbox.zeptopayments.com
- URLhttps://api.sandbox.zeptopayments.com/contacts/receivable
- AuthOAuth 2Authorization code: /oauth/authorizeToken URL: /oauth/token
Request body
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
- info