Update Subscription

Facades: merchant

Overview

Updates a subscription.

Parameters

ParameterDescription
subscriptionA Subscription object with the parameters to update defined.
subscriptionIdThe ID of the subscription to update.

Example

$items = [];

$item = new BitPaySDK\Model\Subscription\Item();
$item->setPrice(30.0);
$item->setQuantity(9);
$item->setDescription("product-a");
array_push($items, $item);

$item = new BitPaySDK\Model\Subscription\Item();
$item->setPrice(14.0);
$item->setQuantity(16);
$item->setDescription("product-b");
array_push($items, $item);

$date = new \DateTime();
$date->modify('+1 month');
$dueDate = $date->format("Y-m-d");

$billData = new BitPaySDK\Model\Subscription\BillData(
    Currency::USD,
    "[email protected]",
    $dueDate,
    $items
);

$subscription = new BitPaySDK\Model\Subscription\Subscription();
$subscription->setBillData($billData);
$subscription->setSchedule("weekly");

$basicSubscription = null;
$retrievedSubscription = null;
$updatedSubscription = null;

$basicSubscription = $bitpay->createSubscription($subscription);
$retrievedSubscription = $bitpay->getSubscription($basicSubscription->getId());

$items = $retrievedSubscription->getBillData()->getItems();

$item = new BitPaySDK\Model\Subscription\Item();
$item->setPrice(60);
$item->setQuantity(7);
$item->setDescription("product-added");

array_push($items, $item);

$retrievedSubscription->getBillData()->setItems($items);
$updatedSubscription = $bitpay->updateSubscription(
                                    $retrievedSubscription, 
                                    $retrievedSubscription->getId()
                                );
$items = $updatedSubscription->getBillData()->getItems();

Success will return the updated subscription details

HTTP Response

{
    "facade": "merchant/subscription",
    "data": {
        "id": "SeL33Hjyr3VmFHA5Skc4zy",
        "status": "active",
        "billData": {
        "emailBill": true,
        "cc": [
            "[email protected]"
        ],
        "number": "subscription1234-ABCD",
        "currency": "USD",
        "name": "John Doe",
        "address1": "2630 Hegal Place",
        "address2": "Apt 42",
        "city": "Alexandria",
        "state": "VA",
        "zip": "23242",
        "country": "US",
        "email": "[email protected]",
        "phone": "555-123-456",
        "dueDate": "2021-05-31T00:00:00.000Z",
        "passProcessingFee": true,
        "items": [
            {
            "description": "Test Item 1",
            "price": 6,
            "quantity": 1
            },
            {
            "description": "Test Item 2",
            "price": 4,
            "quantity": 1
            }
        ],
        "merchant": "5461e13dfd8b0047590d644a"
        },
        "schedule": "0 0 0 * * 1",
        "nextDelivery": "2021-05-24T00:00:00.000Z",
        "createdDate": "2021-05-21T12:29:54.428Z",
        "token": "85yxWk7aEgPdJME6zTkXkAGA3K13MtXf3WHqvtBvyhw3ycfEebJ5WMBRZHXsssSBvn"
    }
}