/// <summary>
        /// Create cancel for Purchases
        /// </summary>
        /// <param name="cancel">cancel</param>
        /// <returns>Purchases</returns>
        public Purchases cancel(Purchases purchases)
        {
            purchases.setRequiredFields(new List <string> {
                DirectDebitConstants.status,
                DirectDebitConstants.id
            });
            purchases.checkRequiredFields();
            purchases.setOptionalFields(new List <string> {
                DirectDebitConstants.ach,
                DirectDebitConstants.bacs,
                DirectDebitConstants.eft,
                DirectDebitConstants.sepa,
            });
            Request request = new Request(
                method: RequestType.PUT,
                uri: this.prepareURI(client.account() + "/purchases/" + purchases.id()),
                body: purchases
                );
            dynamic response = this.client.processRequest(request);

            Purchases returnVal = new Purchases(response);

            returnVal.id(purchases.id());
            return(returnVal);
        }