Let's talk - Payment Requests

This article will outline how you can Request Payment from your contacts via the Zepto UI or the API


A Payment Request (PR) is essentially a direct debit request from one of your end customer/s. Requesting payment from your customers is a simple process and you can do so via both the UI and the API.

To be able to direct debit your customer, you will first need to have a valid Zepto Agreement in place. Once your customer has accepted the Zepto agreement they will be added as a contact in your Zepto dashboard. A Payment Request can be made using:

Payment Request using the UI

Now that you have a contact setup and an agreement in place you can go ahead and direct debit your contact by following these steps:

  • Login to your Zepto dashboard;
  • Click on Payment Request from the left menu bar;
  • Click on the Request Payment button from the right corner of the screen;

In the Details section, add all the relevant details, such as

  • To account - account you want the funds to settle into
  • Authoriser contact - the contact who you will be direct debiting
  • Description - your contact will see the first 9 characters of this description
  • Request type - select from Single, Recurring or Initial + Recurring
  • Add the Amount and the Request date
  • Click on Request Payment

You will notice that the payment request is now created and can be found in the Outgoing Payment Request section of the Payment Request page.


Payment Request using the API

Requesting payment from your customers is a simple process and our API is extensively documented so along with this article you'll be making direct debit requests to your end customers in no time.

Payment requests via the API are as simple as one POST to the following API endpoint:

/POST /payment_requests

An example payload that could be sent to this endpoint with your request is shown below. This example is in the Ruby programming language and should be modified to meet your language requirements

{  
  "description": "Visible to both initiator and authoriser",  
  "matures_at": "2016-12-19T02:10:56Z",  
  "amount": 99000,  
  "authoriser_contact_id": "de86472c-c027-4735-a6a7-234366a27fc7",  
  "your_bank_account_id": "9c70871d-8e36-4c3e-8a9c-c0ee20e7c679",  
  "metadata": {  
    "custom_key": "Custom string",  
    "another_custom_key": "Maybe a URL"  
  }  
}

A Full example of this API call is located on our API Documentation

The above API call will create a request for payment from the contact that you have specified in the authoriser_contact_id field. The _amount in cents, so, in the above example, the field "amount": 99000 is equal to requesting $990.00 from this contact.

We'll send all of this information back to you in a response similar to the following:

{  
  "data": {  
     "ref": "PR.3",  
     "initiator_id": "ca7bc5b3-e47f-4153-96fb-bbe326b42772",  
     "authoriser_id": "970e4526-67d9-4ed9-b554-f5cf390ab775",  
     "authoriser_contact_id": "de86472c-c027-4735-a6a7-234366a27fc7",  
     "schedule_ref": null,  
     "status": "pending_approval",  
     "responded_at": null,  
     "created_at": "2016-12-19T02:10:56Z",  
     "credit_ref": null,  
     "payout":  {  
        "amount": 99000,  
       "description": "The elite package for 4",  
        "matures_at": "2016-12-25T00:00:00Z"  
    },  
    "metadata": {  
                 "custom_key": "Custom string",  
                 "another_custom_key": "Maybe a URL"  
    }  
  }  
}

If the amount specified in the Request is within the terms set out in the Agreement, this Payment Request will be automatically approved and the system will begin processing. In the case where the amount is outside of the terms set out in the Agreement, it will give you the following error :

❗️

The Payment Request to Contact Name exceeds the terms of agreements.