Subscriptions
Subscriptions represent a subscriber's enrolment in a Billing Plan. They manage the recurring billing lifecycle from creation through active billing, suspension, revision, and cancellation.
Create Subscription
Enrols a subscriber in a billing plan. Returns a subscription ID used in all subsequent lifecycle operations.
Use x-vfi-api-idempotencyKey to prevent duplicate subscriptions from being created on network retries.
A value you specify that uniquely identifies the transaction. If you're unsure whether a particular transaction succeeded, you can reattempt it with the same idempotency key without worrying about duplicating the transaction.
PayPal Payment Provider Contract UUID
The ID of the plan
The date and time when the subscription started
The quantity of the product in the subscription
The custom id for the subscription. Can be invoice id
^[ -~]+Created
The PayPal-generated ID for the subscription.
The status of the subscription.
The ID of the plan
Status update time.
Indicates whether the subscription has overridden any plan attributes.
The quantity of the product in the subscription.
The quantity of the product in the subscription.
The quantity of the product in the subscription.
PayPal approval URL
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
POST /oidc/paypal-ecom/subscriptions HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 737
{
"paymentProviderContract": "text",
"planId": "text",
"startTime": "2026-01-01",
"quantity": 1,
"shippingAmount": {
"value": 100,
"currencyCode": "EUR"
},
"subscriber": {
"name": {
"givenName": "text",
"surname": "text"
},
"payerId": "text",
"emailAddress": "text",
"phone": {
"phoneType": "FAX",
"phoneNumber": {
"nationalNumber": "text"
}
},
"shippingAddress": {
"name": {
"fullName": "text"
},
"address": {
"country": "text",
"postalCode": "text",
"countrySubdivision": "text",
"city": "text",
"addressLine2": "text",
"addressLine1": "text"
}
}
},
"customId": "text",
"applicationContext": {
"brandName": "text",
"locale": "text",
"shippingPreference": "GET_FROM_FILE",
"userAction": "CONTINUE",
"paymentMethod": {
"payerSelected": "text",
"payeePreferred": "UNRESTRICTED"
},
"returnUrl": "text",
"cancelUrl": "text"
}
}{
"id": "text",
"status": "text",
"planId": "text",
"statusUpdateTime": "2026-01-01",
"planOverridden": true,
"quantity": "text",
"startTime": "2026-01-01",
"shippingAmount": {
"value": 100,
"currencyCode": "EUR"
},
"subscriber": {
"name": {
"givenName": "text",
"surname": "text"
},
"payerId": "text",
"emailAddress": "text",
"phone": {
"phoneType": "FAX",
"phoneNumber": {
"nationalNumber": "text"
}
},
"shippingAddress": {
"name": {
"fullName": "text"
},
"address": {
"country": "text",
"postalCode": "text",
"countrySubdivision": "text",
"city": "text",
"addressLine2": "text",
"addressLine1": "text"
}
}
},
"applicationContext": {
"brandName": "text",
"locale": "text",
"shippingPreference": "GET_FROM_FILE",
"userAction": "CONTINUE",
"paymentMethod": {
"payerSelected": "text",
"payeePreferred": "UNRESTRICTED"
},
"returnUrl": "text",
"cancelUrl": "text"
},
"createdAt": "2026-01-01",
"approvalUrl": "text"
}Subscription Details
Retrieves the current details and status of a subscription, including billing info, subscriber details, and outstanding balance.
PayPal Payment Provider Contract UUID
Successful
ID of the subscription
The status of the subscription
The ID of the plan
Indicates whether the subscription has overridden any plan attributes
The date and time when the subscription status updated last time
The reason or notes for the status of the subscription
The date and time when the subscription started
The quantity of the product in the subscription
The custom id for the subscription. Can be invoice id
^[ -~]+The date and time when the subscription created
The date and time when the subscription updated last time
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
GET /oidc/paypal-ecom/subscriptions/{id}?paymentProviderContract=text HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "text",
"status": "APPROVAL_PENDING",
"planId": "text",
"planOverridden": true,
"statusUpdateTime": "2026-01-01",
"statusChangeNote": "text",
"startTime": "2026-01-01",
"quantity": 1,
"customId": "text",
"shippingAmount": {
"value": 100,
"currencyCode": "EUR"
},
"subscriber": {
"name": {
"givenName": "text",
"surname": "text"
},
"payerId": "text",
"emailAddress": "text",
"phone": {
"phoneType": "FAX",
"phoneNumber": {
"nationalNumber": "text"
}
},
"shippingAddress": {
"name": {
"fullName": "text"
},
"address": {
"country": "text",
"postalCode": "text",
"countrySubdivision": "text",
"city": "text",
"addressLine2": "text",
"addressLine1": "text"
}
}
},
"billingInfo": {
"outstandingBalance": {
"value": 100,
"currencyCode": "EUR"
},
"cycleExecutions": [
{
"tenureType": "REGULAR",
"sequence": 1,
"cyclesCompleted": 1,
"cyclesRemaining": 1,
"currentPricingSchemeVersion": 1,
"totalCycles": 1
}
],
"lastPayment": {
"status": "text",
"amount": {
"value": 100,
"currencyCode": "EUR"
},
"time": "2026-01-01"
},
"nextBillingTime": "text",
"finalPaymentTime": "text",
"failedPaymentsCount": 1,
"lastFailedPayment": {
"amount": {
"value": 100,
"currencyCode": "EUR"
},
"time": "2026-01-01",
"reasonCode": "CURRENCY_MISMATCH",
"nextPaymentRetryTime": "2026-01-01"
}
},
"createdAt": "2026-01-01",
"updatedAt": "2026-01-01"
}Update Subscription
Updates mutable fields on an active subscription, such as billing cycle pricing, subscriber shipping address, outstanding balance, or taxes. Returns 204 No Content on success.
PayPal Payment Provider Contract UUID
No Content
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
PATCH /oidc/paypal-ecom/subscriptions/{id} HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 1014
{
"paymentProviderContract": "text",
"startTime": {
"op": "replace",
"value": "2026-01-01"
},
"customId": {
"op": "add",
"value": "text"
},
"planPaymentPreferencesAutoBillOutstanding": {
"op": "replace",
"value": true
},
"planBillingCyclesPricingSchemeFixedPrice": {
"op": "add",
"value": {
"value": 100,
"currencyCode": "EUR"
},
"sequence": 1
},
"planBillingCyclesTotalCycles": {
"op": "replace",
"value": 1,
"sequence": 1
},
"planBillingCyclesPricingSchemeTiers": {
"op": "replace",
"value": [
{
"startingQuantity": 1,
"endingQuantity": 1,
"amount": {
"value": 100,
"currencyCode": "EUR"
}
}
],
"sequence": 1
},
"planTaxesPercentage": {
"op": "add",
"value": 1
},
"planTaxesInclusive": {
"op": "add",
"value": true
},
"subscriberShippingAddress": {
"op": "add",
"value": {
"name": {
"fullName": "text"
},
"address": {
"country": "text",
"postalCode": "text",
"countrySubdivision": "text",
"city": "text",
"addressLine2": "text",
"addressLine1": "text"
}
}
},
"billingInfoOutstandingBalance": {
"op": "replace",
"value": {
"value": 100,
"currencyCode": "EUR"
}
},
"shippingAmount": {
"op": "add",
"value": {
"value": 100,
"currencyCode": "EUR"
}
}
}No content
Revise Subscription
Revises a subscription to move the subscriber to a different plan or change plan-level configuration. Returns a redirect URL for the subscriber to confirm the revision if required.
PayPal Payment Provider Contract UUID
The ID of the plan
The date and time when this change is effective
The quantity of the product or service in the subscription
Successful
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
POST /oidc/paypal-ecom/subscriptions/{id}/revise HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 556
{
"paymentProviderContract": "text",
"planId": "text",
"effectiveTime": "2026-01-01",
"quantity": 1,
"shippingAmount": {
"value": 100,
"currencyCode": "EUR"
},
"shippingAddress": {
"name": {
"fullName": "text"
},
"address": {
"country": "text",
"postalCode": "text",
"countrySubdivision": "text",
"city": "text",
"addressLine2": "text",
"addressLine1": "text"
}
},
"applicationContext": {
"brandName": "text",
"locale": "text",
"shippingPreference": "GET_FROM_FILE",
"userAction": "CONTINUE",
"paymentMethod": {
"payerSelected": "text",
"payeePreferred": "UNRESTRICTED"
},
"returnUrl": "text",
"cancelUrl": "text"
}
}textCapture Authorized Payment
Captures an outstanding authorised payment on a subscription. Returns 202 Accepted — the capture is processed asynchronously.
Use x-vfi-api-idempotencyKey to prevent duplicate captures. The 202 Accepted response means the request was queued, not that capture is complete.
A value you specify that uniquely identifies the transaction. If you're unsure whether a particular transaction succeeded, you can reattempt it with the same idempotency key without worrying about duplicating the transaction.
PayPal Payment Provider Contract UUID
The reason or note for the subscription charge.
Accepted
POST /oidc/paypal-ecom/subscriptions/{id}/capture HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 94
{
"paymentProviderContract": "text",
"reason": "text",
"amount": {
"currencyCode": "EUR",
"value": 100
}
}Accepted
No content
Activate Subscription
Reactivates a suspended subscription, resuming the billing cycle.
The reason for activation of a subscription
PayPal Payment Provider Contract UUID
No Content
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
POST /oidc/paypal-ecom/subscriptions/{id}/activate HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 50
{
"reason": "text",
"paymentProviderContract": "text"
}No content
Suspend Subscription
Pauses a subscription temporarily. The subscription enters a suspended state and billing stops until it is reactivated.
PayPal Payment Provider Contract UUID
The reason for suspenson of the subscription.
No Content
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
POST /oidc/paypal-ecom/subscriptions/{id}/suspend HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 50
{
"paymentProviderContract": "text",
"reason": "text"
}No content
Cancel Subscription
Permanently cancels a subscription. The subscriber will no longer be billed.
Cancellation is irreversible. A cancelled subscription cannot be reactivated. A new subscription must be created if the subscriber wishes to re-enrol.
PayPal Payment Provider Contract UUID
The reason for the cancellation of a subscription.
No Content
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
POST /oidc/paypal-ecom/subscriptions/{id}/cancel HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 94
{
"paymentProviderContract": "text",
"reason": "text",
"amount": {
"value": 100,
"currencyCode": "EUR"
}
}No content
Subscription Lifecycle States
Last updated
Was this helpful?
