requestCollection('get', '/v1/coupons', $params, $opts);
}
/**
* You can create coupons easily via the coupon management page of the
* Stripe dashboard. Coupon creation is also accessible via the API if you need to
* create coupons on the fly.
*
* A coupon has either a percent_off
or an amount_off
and
* currency
. If you set an amount_off
, that amount will
* be subtracted from any invoice’s subtotal. For example, an invoice with a
* subtotal of 100 will have a final total of
* 0 if a coupon with an amount_off
of
* 200 is applied to it and an invoice with a subtotal of
* 300 will have a final total of 100 if
* a coupon with an amount_off
of 200 is applied to
* it.
*
* @param null|array $params
* @param null|array|\Stripe\Util\RequestOptions $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\Coupon
*/
public function create($params = null, $opts = null)
{
return $this->request('post', '/v1/coupons', $params, $opts);
}
/**
* You can delete coupons via the coupon management page of the
* Stripe dashboard. However, deleting a coupon does not affect any customers who
* have already applied the coupon; it means that new customers can’t redeem the
* coupon. You can also delete coupons via the API.
*
* @param string $id
* @param null|array $params
* @param null|array|\Stripe\Util\RequestOptions $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\Coupon
*/
public function delete($id, $params = null, $opts = null)
{
return $this->request('delete', $this->buildPath('/v1/coupons/%s', $id), $params, $opts);
}
/**
* Retrieves the coupon with the given ID.
*
* @param string $id
* @param null|array $params
* @param null|array|\Stripe\Util\RequestOptions $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\Coupon
*/
public function retrieve($id, $params = null, $opts = null)
{
return $this->request('get', $this->buildPath('/v1/coupons/%s', $id), $params, $opts);
}
/**
* Updates the metadata of a coupon. Other coupon details (currency, duration,
* amount_off) are, by design, not editable.
*
* @param string $id
* @param null|array $params
* @param null|array|\Stripe\Util\RequestOptions $opts
*
* @throws \Stripe\Exception\ApiErrorException if the request fails
*
* @return \Stripe\Coupon
*/
public function update($id, $params = null, $opts = null)
{
return $this->request('post', $this->buildPath('/v1/coupons/%s', $id), $params, $opts);
}
}