For the complete documentation index, see llms.txt. This page is also available as Markdown.

Products

Products represent the goods or services that a merchant sells. In the PayPal subscription model, a product is the top-level entity that billing plans are built on top of. You must create a product before you can create a billing plan.

Products are scoped to a paymentProviderContract (PayPal Payment Provider Contract UUID). Include this value in query parameters when listing or retrieving products.

List Products

Returns a paginated list of products associated with a PayPal payment provider contract.

List products

get
/products
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
paymentProviderContractstringRequired

PayPal Payment Provider Contract UUID

pageSizeinteger · min: 1 · max: 20Optional

The number of items to return in the response.

pageinteger · min: 1 · max: 100000Optional

A non-zero integer which is the start index of the entire list of items that are returned in the response. So, the combination of page=1 and page_size=20 returns the first 20 items. The combination of page=2 and page_size=20 returns the next 20 items.

totalRequiredbooleanOptional

Indicates whether to show the total items and total pages in the response.

Responses
200

Successful

application/json
totalItemsintegerOptional
totalPagesintegerOptional
get/products
GET /oidc/paypal-ecom/products?paymentProviderContract=text HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "totalItems": 1,
  "totalPages": 1,
  "products": [
    {
      "id": "text",
      "name": "text",
      "description": "text",
      "type": "PHYSICAL",
      "category": "AUTO_RENTALS",
      "createdAt": "2026-01-01",
      "updatedAt": "2026-01-01",
      "imageUrl": "text",
      "homeUrl": "text"
    }
  ]
}

Create Product

Creates a new product under the specified PayPal payment provider contract. The product can then be used as the basis for one or more billing plans.

Create product

post
/products
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Header parameters
x-vfi-api-idempotencyKeystringOptional

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.

Body
paymentProviderContractstringRequired

PayPal Payment Provider Contract UUID

idstring · min: 6 · max: 50Optional

The ID of the product. You can specify the SKU for the product. If you omit the ID, the system generates it. System-generated IDs have the PROD- prefix

namestring · min: 1 · max: 127Required

The product name

descriptionstring · min: 1 · max: 256Optional

The product description

typestring · enumRequired

The product type. Indicates whether the product is physical or tangible goods, or a service

Example: PHYSICALPossible values:
categorystring · enumOptional

The product category

Example: AUTO_RENTALSPossible values:
imageUrlstring · min: 1 · max: 2000Optional

The home page URL for the product

homeUrlstring · min: 1 · max: 2000Optional

The image URL for the product

Responses
201

Created

application/json
idstring · min: 6 · max: 50Optional

The ID of the product. You can specify the SKU for the product. If you omit the ID, the system generates it. System-generated IDs have the PROD- prefix

namestring · min: 1 · max: 127Required

The product name

descriptionstring · min: 1 · max: 256Optional

The product description

typestring · enumRequired

The product type. Indicates whether the product is physical or tangible goods, or a service

Example: PHYSICALPossible values:
categorystring · enumOptional

The product category

Example: AUTO_RENTALSPossible values:
imageUrlstring · min: 1 · max: 2000Optional

The home page URL for the product

homeUrlstring · min: 1 · max: 2000Optional

The image URL for the product

createdAtstring · dateRequired

Product creation date (ISO-8601)

updatedAtstring · dateRequired

Product last update date (ISO-8601)

post/products
POST /oidc/paypal-ecom/products HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 160

{
  "paymentProviderContract": "text",
  "id": "text",
  "name": "text",
  "description": "text",
  "type": "PHYSICAL",
  "category": "AUTO_RENTALS",
  "imageUrl": "text",
  "homeUrl": "text"
}
{
  "id": "text",
  "name": "text",
  "description": "text",
  "type": "PHYSICAL",
  "category": "AUTO_RENTALS",
  "imageUrl": "text",
  "homeUrl": "text",
  "createdAt": "2026-01-01",
  "updatedAt": "2026-01-01"
}

Get Product Details

Retrieves the full details of a specific product by its ID.

Get product details

get
/products/{id}
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired

The product ID.

Query parameters
paymentProviderContractstringRequired

PayPal Payment Provider Contract UUID

Responses
200

Successful

application/json
idstring · min: 6 · max: 50Optional

The ID of the product. You can specify the SKU for the product. If you omit the ID, the system generates it. System-generated IDs have the PROD- prefix

namestring · min: 1 · max: 127Required

The product name

descriptionstring · min: 1 · max: 256Optional

The product description

typestring · enumRequired

The product type. Indicates whether the product is physical or tangible goods, or a service

Example: PHYSICALPossible values:
categorystring · enumOptional

The product category

Example: AUTO_RENTALSPossible values:
imageUrlstring · min: 1 · max: 2000Optional

The home page URL for the product

homeUrlstring · min: 1 · max: 2000Optional

The image URL for the product

createdAtstring · dateRequired

Product creation date (ISO-8601)

updatedAtstring · dateRequired

Product last update date (ISO-8601)

get/products/{id}
GET /oidc/paypal-ecom/products/{id}?paymentProviderContract=text HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "text",
  "name": "text",
  "description": "text",
  "type": "PHYSICAL",
  "category": "AUTO_RENTALS",
  "imageUrl": "text",
  "homeUrl": "text",
  "createdAt": "2026-01-01",
  "updatedAt": "2026-01-01"
}

Update Product

Updates mutable fields on an existing product. Returns 204 No Content on success.

Update product

patch
/products/{id}
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired

The product ID.

Body
paymentProviderContractstringRequired

PayPal Payment Provider Contract UUID

Responses
204

No Content

patch/products/{id}
PATCH /oidc/paypal-ecom/products/{id} HTTP/1.1
Host: emea.gsc.verifone.cloud
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 200

{
  "paymentProviderContract": "text",
  "imageUrl": {
    "op": "add",
    "value": "text"
  },
  "homeUrl": {
    "op": "add",
    "value": "text"
  },
  "category": {
    "op": "add",
    "value": "AUTO_RENTALS"
  },
  "description": {
    "op": "add",
    "value": "text"
  }
}

No content

Pagination

The GET /products endpoint supports standard PayPal pagination:

Request parameters

  • pageSize — Items per page (1–20)

  • page — Page index, starting at 1 (max 100,000)

  • totalRequired — Set to true to include total item and page counts in the response

Example

Page 2 of results, 10 per page with totals:

Was this helpful?