$subscriptionsApi = $client->getSubscriptionsApi();
SubscriptionsApi
- Create Subscription
- Bulk Swap Plan
- Search Subscriptions
- Retrieve Subscription
- Update Subscription
- Delete Subscription Action
- Change Billing Anchor Date
- Cancel Subscription
- List Subscription Events
- Pause Subscription
- Resume Subscription
- Swap Plan
Enrolls a customer in a subscription.
If you provide a card on file in the request, Square charges the card for
the subscription. Otherwise, Square sends an invoice to the customer's email
address. The subscription starts immediately, unless the request includes
the optional start_date
. Each individual subscription is associated with a particular location.
For more information, see Create a subscription.
function createSubscription(CreateSubscriptionRequest $body): ApiResponse
Parameter | Type | Tags | Description |
---|---|---|---|
body |
CreateSubscriptionRequest |
Body, Required | An object containing the fields to POST for the request. See the corresponding object definition for field details. |
This method returns a Square\Utils\ApiResponse
instance. The getResult()
method on this instance returns the response data which is of type CreateSubscriptionResponse
.
$body = CreateSubscriptionRequestBuilder::init(
'S8GWD5R9QB376',
'CHFGVKYY8RSV93M5KCYTG4PN0G'
)
->idempotencyKey('8193148c-9586-11e6-99f9-28cfe92138cf')
->planVariationId('6JHXF3B2CW3YKHDV4XEM674H')
->startDate('2023-06-20')
->cardId('ccof:qy5x8hHGYsgLrp4Q4GB')
->timezone('America/Los_Angeles')
->source(
SubscriptionSourceBuilder::init()
->name('My Application')
->build()
)
->phases(
[
PhaseBuilder::init()
->ordinal(0)
->orderTemplateId('U2NaowWxzXwpsZU697x7ZHOAnCNZY')
->build()
]
)
->build();
$apiResponse = $subscriptionsApi->createSubscription($body);
if ($apiResponse->isSuccess()) {
$createSubscriptionResponse = $apiResponse->getResult();
} else {
$errors = $apiResponse->getErrors();
}
// Getting more response information
var_dump($apiResponse->getStatusCode());
var_dump($apiResponse->getHeaders());
Schedules a plan variation change for all active subscriptions under a given plan variation. For more information, see Swap Subscription Plan Variations.
function bulkSwapPlan(BulkSwapPlanRequest $body): ApiResponse
Parameter | Type | Tags | Description |
---|---|---|---|
body |
BulkSwapPlanRequest |
Body, Required | An object containing the fields to POST for the request. See the corresponding object definition for field details. |
This method returns a Square\Utils\ApiResponse
instance. The getResult()
method on this instance returns the response data which is of type BulkSwapPlanResponse
.
$body = BulkSwapPlanRequestBuilder::init(
'FQ7CDXXWSLUJRPM3GFJSJGZ7',
'6JHXF3B2CW3YKHDV4XEM674H',
'S8GWD5R9QB376'
)->build();
$apiResponse = $subscriptionsApi->bulkSwapPlan($body);
if ($apiResponse->isSuccess()) {
$bulkSwapPlanResponse = $apiResponse->getResult();
} else {
$errors = $apiResponse->getErrors();
}
// Getting more response information
var_dump($apiResponse->getStatusCode());
var_dump($apiResponse->getHeaders());
Searches for subscriptions.
Results are ordered chronologically by subscription creation date. If the request specifies more than one location ID, the endpoint orders the result by location ID, and then by creation date within each location. If no locations are given in the query, all locations are searched.
You can also optionally specify customer_ids
to search by customer.
If left unset, all customers
associated with the specified locations are returned.
If the request specifies customer IDs, the endpoint orders results
first by location, within location by customer ID, and within
customer by subscription creation date.
function searchSubscriptions(SearchSubscriptionsRequest $body): ApiResponse
Parameter | Type | Tags | Description |
---|---|---|---|
body |
SearchSubscriptionsRequest |
Body, Required | An object containing the fields to POST for the request. See the corresponding object definition for field details. |
This method returns a Square\Utils\ApiResponse
instance. The getResult()
method on this instance returns the response data which is of type SearchSubscriptionsResponse
.
$body = SearchSubscriptionsRequestBuilder::init()
->query(
SearchSubscriptionsQueryBuilder::init()
->filter(
SearchSubscriptionsFilterBuilder::init()
->customerIds(
[
'CHFGVKYY8RSV93M5KCYTG4PN0G'
]
)
->locationIds(
[
'S8GWD5R9QB376'
]
)
->sourceNames(
[
'My App'
]
)
->build()
)
->build()
)
->build();
$apiResponse = $subscriptionsApi->searchSubscriptions($body);
if ($apiResponse->isSuccess()) {
$searchSubscriptionsResponse = $apiResponse->getResult();
} else {
$errors = $apiResponse->getErrors();
}
// Getting more response information
var_dump($apiResponse->getStatusCode());
var_dump($apiResponse->getHeaders());
Retrieves a specific subscription.
function retrieveSubscription(string $subscriptionId, ?string $mInclude = null): ApiResponse
Parameter | Type | Tags | Description |
---|---|---|---|
subscriptionId |
string |
Template, Required | The ID of the subscription to retrieve. |
mInclude |
?string |
Query, Optional | A query parameter to specify related information to be included in the response. The supported query parameter values are: - actions : to include scheduled actions on the targeted subscription. |
This method returns a Square\Utils\ApiResponse
instance. The getResult()
method on this instance returns the response data which is of type RetrieveSubscriptionResponse
.
$subscriptionId = 'subscription_id0';
$apiResponse = $subscriptionsApi->retrieveSubscription($subscriptionId);
if ($apiResponse->isSuccess()) {
$retrieveSubscriptionResponse = $apiResponse->getResult();
} else {
$errors = $apiResponse->getErrors();
}
// Getting more response information
var_dump($apiResponse->getStatusCode());
var_dump($apiResponse->getHeaders());
Updates a subscription by modifying or clearing subscription
field values.
To clear a field, set its value to null
.
function updateSubscription(string $subscriptionId, UpdateSubscriptionRequest $body): ApiResponse
Parameter | Type | Tags | Description |
---|---|---|---|
subscriptionId |
string |
Template, Required | The ID of the subscription to update. |
body |
UpdateSubscriptionRequest |
Body, Required | An object containing the fields to POST for the request. See the corresponding object definition for field details. |
This method returns a Square\Utils\ApiResponse
instance. The getResult()
method on this instance returns the response data which is of type UpdateSubscriptionResponse
.
$subscriptionId = 'subscription_id0';
$body = UpdateSubscriptionRequestBuilder::init()
->subscription(
SubscriptionBuilder::init()
->canceledDate('canceled_date6')
->cardId('{NEW CARD ID}')
->build()
)
->build();
$apiResponse = $subscriptionsApi->updateSubscription(
$subscriptionId,
$body
);
if ($apiResponse->isSuccess()) {
$updateSubscriptionResponse = $apiResponse->getResult();
} else {
$errors = $apiResponse->getErrors();
}
// Getting more response information
var_dump($apiResponse->getStatusCode());
var_dump($apiResponse->getHeaders());
Deletes a scheduled action for a subscription.
function deleteSubscriptionAction(string $subscriptionId, string $actionId): ApiResponse
Parameter | Type | Tags | Description |
---|---|---|---|
subscriptionId |
string |
Template, Required | The ID of the subscription the targeted action is to act upon. |
actionId |
string |
Template, Required | The ID of the targeted action to be deleted. |
This method returns a Square\Utils\ApiResponse
instance. The getResult()
method on this instance returns the response data which is of type DeleteSubscriptionActionResponse
.
$subscriptionId = 'subscription_id0';
$actionId = 'action_id6';
$apiResponse = $subscriptionsApi->deleteSubscriptionAction(
$subscriptionId,
$actionId
);
if ($apiResponse->isSuccess()) {
$deleteSubscriptionActionResponse = $apiResponse->getResult();
} else {
$errors = $apiResponse->getErrors();
}
// Getting more response information
var_dump($apiResponse->getStatusCode());
var_dump($apiResponse->getHeaders());
Changes the billing anchor date for a subscription.
function changeBillingAnchorDate(string $subscriptionId, ChangeBillingAnchorDateRequest $body): ApiResponse
Parameter | Type | Tags | Description |
---|---|---|---|
subscriptionId |
string |
Template, Required | The ID of the subscription to update the billing anchor date. |
body |
ChangeBillingAnchorDateRequest |
Body, Required | An object containing the fields to POST for the request. See the corresponding object definition for field details. |
This method returns a Square\Utils\ApiResponse
instance. The getResult()
method on this instance returns the response data which is of type ChangeBillingAnchorDateResponse
.
$subscriptionId = 'subscription_id0';
$body = ChangeBillingAnchorDateRequestBuilder::init()
->monthlyBillingAnchorDate(1)
->build();
$apiResponse = $subscriptionsApi->changeBillingAnchorDate(
$subscriptionId,
$body
);
if ($apiResponse->isSuccess()) {
$changeBillingAnchorDateResponse = $apiResponse->getResult();
} else {
$errors = $apiResponse->getErrors();
}
// Getting more response information
var_dump($apiResponse->getStatusCode());
var_dump($apiResponse->getHeaders());
Schedules a CANCEL
action to cancel an active subscription. This
sets the canceled_date
field to the end of the active billing period. After this date,
the subscription status changes from ACTIVE to CANCELED.
function cancelSubscription(string $subscriptionId): ApiResponse
Parameter | Type | Tags | Description |
---|---|---|---|
subscriptionId |
string |
Template, Required | The ID of the subscription to cancel. |
This method returns a Square\Utils\ApiResponse
instance. The getResult()
method on this instance returns the response data which is of type CancelSubscriptionResponse
.
$subscriptionId = 'subscription_id0';
$apiResponse = $subscriptionsApi->cancelSubscription($subscriptionId);
if ($apiResponse->isSuccess()) {
$cancelSubscriptionResponse = $apiResponse->getResult();
} else {
$errors = $apiResponse->getErrors();
}
// Getting more response information
var_dump($apiResponse->getStatusCode());
var_dump($apiResponse->getHeaders());
Lists all events for a specific subscription.
function listSubscriptionEvents(string $subscriptionId, ?string $cursor = null, ?int $limit = null): ApiResponse
Parameter | Type | Tags | Description |
---|---|---|---|
subscriptionId |
string |
Template, Required | The ID of the subscription to retrieve the events for. |
cursor |
?string |
Query, Optional | When the total number of resulting subscription events exceeds the limit of a paged response, specify the cursor returned from a preceding response here to fetch the next set of results. If the cursor is unset, the response contains the last page of the results. For more information, see Pagination. |
limit |
?int |
Query, Optional | The upper limit on the number of subscription events to return in a paged response. |
This method returns a Square\Utils\ApiResponse
instance. The getResult()
method on this instance returns the response data which is of type ListSubscriptionEventsResponse
.
$subscriptionId = 'subscription_id0';
$apiResponse = $subscriptionsApi->listSubscriptionEvents($subscriptionId);
if ($apiResponse->isSuccess()) {
$listSubscriptionEventsResponse = $apiResponse->getResult();
} else {
$errors = $apiResponse->getErrors();
}
// Getting more response information
var_dump($apiResponse->getStatusCode());
var_dump($apiResponse->getHeaders());
Schedules a PAUSE
action to pause an active subscription.
function pauseSubscription(string $subscriptionId, PauseSubscriptionRequest $body): ApiResponse
Parameter | Type | Tags | Description |
---|---|---|---|
subscriptionId |
string |
Template, Required | The ID of the subscription to pause. |
body |
PauseSubscriptionRequest |
Body, Required | An object containing the fields to POST for the request. See the corresponding object definition for field details. |
This method returns a Square\Utils\ApiResponse
instance. The getResult()
method on this instance returns the response data which is of type PauseSubscriptionResponse
.
$subscriptionId = 'subscription_id0';
$body = PauseSubscriptionRequestBuilder::init()->build();
$apiResponse = $subscriptionsApi->pauseSubscription(
$subscriptionId,
$body
);
if ($apiResponse->isSuccess()) {
$pauseSubscriptionResponse = $apiResponse->getResult();
} else {
$errors = $apiResponse->getErrors();
}
// Getting more response information
var_dump($apiResponse->getStatusCode());
var_dump($apiResponse->getHeaders());
Schedules a RESUME
action to resume a paused or a deactivated subscription.
function resumeSubscription(string $subscriptionId, ResumeSubscriptionRequest $body): ApiResponse
Parameter | Type | Tags | Description |
---|---|---|---|
subscriptionId |
string |
Template, Required | The ID of the subscription to resume. |
body |
ResumeSubscriptionRequest |
Body, Required | An object containing the fields to POST for the request. See the corresponding object definition for field details. |
This method returns a Square\Utils\ApiResponse
instance. The getResult()
method on this instance returns the response data which is of type ResumeSubscriptionResponse
.
$subscriptionId = 'subscription_id0';
$body = ResumeSubscriptionRequestBuilder::init()->build();
$apiResponse = $subscriptionsApi->resumeSubscription(
$subscriptionId,
$body
);
if ($apiResponse->isSuccess()) {
$resumeSubscriptionResponse = $apiResponse->getResult();
} else {
$errors = $apiResponse->getErrors();
}
// Getting more response information
var_dump($apiResponse->getStatusCode());
var_dump($apiResponse->getHeaders());
Schedules a SWAP_PLAN
action to swap a subscription plan variation in an existing subscription.
For more information, see Swap Subscription Plan Variations.
function swapPlan(string $subscriptionId, SwapPlanRequest $body): ApiResponse
Parameter | Type | Tags | Description |
---|---|---|---|
subscriptionId |
string |
Template, Required | The ID of the subscription to swap the subscription plan for. |
body |
SwapPlanRequest |
Body, Required | An object containing the fields to POST for the request. See the corresponding object definition for field details. |
This method returns a Square\Utils\ApiResponse
instance. The getResult()
method on this instance returns the response data which is of type SwapPlanResponse
.
$subscriptionId = 'subscription_id0';
$body = SwapPlanRequestBuilder::init()
->newPlanVariationId('FQ7CDXXWSLUJRPM3GFJSJGZ7')
->phases(
[
PhaseInputBuilder::init(
0
)
->orderTemplateId('uhhnjH9osVv3shUADwaC0b3hNxQZY')
->build()
]
)
->build();
$apiResponse = $subscriptionsApi->swapPlan(
$subscriptionId,
$body
);
if ($apiResponse->isSuccess()) {
$swapPlanResponse = $apiResponse->getResult();
} else {
$errors = $apiResponse->getErrors();
}
// Getting more response information
var_dump($apiResponse->getStatusCode());
var_dump($apiResponse->getHeaders());