<?php
namespace Srmklive\PayPal\Traits\PayPalAPI;
trait InvoicesTemplates
{
/**
* Get list of invoice templates.
*
* @param string $fields
*
* @throws \Throwable
*
* @return array|\Psr\Http\Message\StreamInterface|string
*
* @see https://developer.paypal.com/docs/api/invoicing/v2/#templates_list
*/
public function listInvoiceTemplates(string $fields = 'all')
{
$this->apiEndPoint = "v2/invoicing/templates?page={$this->current_page}&page_size={$this->page_size}&fields={$fields}";
$this->verb = 'get';
return $this->doPayPalRequest();
}
/**
* Create a new invoice template.
*
* @param array $data
*
* @throws \Throwable
*
* @return array|\Psr\Http\Message\StreamInterface|string
*
* @see https://developer.paypal.com/docs/api/invoicing/v2/#templates_create
*/
public function createInvoiceTemplate(array $data)
{
$this->apiEndPoint = 'v2/invoicing/templates';
$this->options['json'] = $data;
$this->verb = 'post';
return $this->doPayPalRequest();
}
/**
* Show details for an existing invoice.
*
* @param string $template_id
*
* @throws \Throwable
*
* @return array|\Psr\Http\Message\StreamInterface|string
*
* @see https://developer.paypal.com/docs/api/invoicing/v2/#templates_get
*/
public function showInvoiceTemplateDetails(string $template_id)
{
$this->apiEndPoint = "v2/invoicing/templates/{$template_id}";
$this->verb = 'get';
return $this->doPayPalRequest();
}
/**
* Update an existing invoice template.
*
* @param string $template_id
* @param array $data
*
* @throws \Throwable
*
* @return array|\Psr\Http\Message\StreamInterface|string
*
* @see https://developer.paypal.com/docs/api/invoicing/v2/#templates_update
*/
public function updateInvoiceTemplate(string $template_id, array $data)
{
$this->apiEndPoint = "v2/invoicing/templates/{$template_id}";
$this->options['json'] = $data;
$this->verb = 'put';
return $this->doPayPalRequest();
}
/**
* Delete an invoice template.
*
* @param string $template_id
*
* @throws \Throwable
*
* @return array|\Psr\Http\Message\StreamInterface|string
*
* @see https://developer.paypal.com/docs/api/invoicing/v2/#templates_delete
*/
public function deleteInvoiceTemplate(string $template_id)
{
$this->apiEndPoint = "v2/invoicing/templates/{$template_id}";
$this->verb = 'delete';
return $this->doPayPalRequest(false);
}
}
If you encounter any issues or need assistance, please reach out to our dedicated developer support team Contact Us
Thank you for choosing Kueue Pay Payment Gateway Solutions! We look forward to seeing your integration thrive and provide a seamless payment experience for your valued customers.