Skip to content

Public products listing

Read-only catalog endpoints for active products. Use these in storefronts, pricing pages, or in-app upgrades without calling admin CRUD.

Base URL

https://your-instance.pubflow.com/bridge-payment/products

Authentication (PUBLIC_PRODUCT_LISTING)

PUBLIC_PRODUCT_LISTINGBehavior
truePublic — no session required
falseAuthenticated — any valid Flowless session (requireUser)

List products

http
GET /bridge-payment/products

Query parameters

ParameterDescription
page, limit, offsetPagination (page wins offset when both set)
category_idFilter
product_typephysical | digital | service | subscription
is_recurringtrue / false
searchText search
orderByname | subtotal_cents | created_at
orderDirasc | desc

Only is_active: true products are returned.

Response

data[] includes catalog fields such as id, name, description, product_type, is_recurring, subtotal_cents, currency, billing_interval, image, metadata, category_id.

Membership mapping

If you encode membership_type_id inside metadata on the product record, downstream flows can tie a subscription to a tier—see Memberships API.

Get product

http
GET /bridge-payment/products/:id

Returns the product when it exists and is active; otherwise 404.

Admin Product Management & Provider Sync

Administrative endpoints allow you to fully manage the lifecycle of your products, including updating pricing, names, and syncing them out to your configured Payment Providers (such as Stripe, PayPal, and Polar).

List Products (Admin)

GET
/bridge-payment/admin/products

Admin endpoint to list all products with advanced filtering, search, and pagination. Supports filtering by category, type, recurring status, active status, and full-text search. Results can be ordered by multiple fields.

Pagination Methods (choose one):

  • Page-based: Use page parameter (1-based). Example: page=2&limit=10 returns products 11-20
  • Offset-based: Use offset parameter. Example: offset=20&limit=10 skips first 20 products
  • If both are provided, page takes priority
  • Default: limit=20, page=1 (or offset=0)

Example Requests:

  • Page-based: ?page=2&limit=10&product_type=subscription&is_active=true
  • Offset-based: ?offset=20&limit=10&search=premium&orderBy=name&orderDir=asc

Authorizations

SessionAuth

Session ID from Flowless authentication

TypeAPI Key (header: X-Session-ID)

Parameters

Query Parameters

page

Page number for pagination (1-based). Alternative to offset. If provided, takes priority over offset.

Typeinteger
Minimum1
Default1
limit

Number of products to return per page (default: 20)

Typeinteger
Default20
offset

Number of products to skip for pagination (default: 0). Alternative to page parameter.

Typeinteger
Default0
category_id

Filter by category ID

Typestring
product_type

Filter by product type

Typestring
Valid values
"physical""digital""service""subscription"
is_recurring

Filter by recurring status (string 'true' or 'false')

Typestring
Valid values
"true""false"
is_active

Filter by active status (string 'true' or 'false')

Typestring
Valid values
"true""false"
search

Search term to filter products by name or description

Typestring
orderBy

Field to sort results by (default: created_at)

Typestring
Valid values
"name""subtotal_cents""created_at""updated_at"
orderDir

Sort direction: 'asc' for ascending, 'desc' for descending (default: desc)

Typestring
Valid values
"asc""desc"

Responses

List of products with pagination metadata

application/json
JSON
{
"success": true,
"data": [
{
"id": "string",
"name": "string",
"description": "string",
"product_type": "string",
"is_recurring": true,
"subtotal_cents": 0,
"tax_cents": 0,
"discount_cents": 0,
"total_cents": 0,
"currency": "string",
"billing_interval": "string",
"trial_days": 0,
"category_id": "string",
"is_active": true,
"created_at": "string",
"updated_at": "string"
}
],
"pagination": {
"total": 0,
"limit": 0,
"offset": 0,
"page": 0,
"pages": 0
}
}

Playground

Server
Authorization
Variables
Key
Value

Samples

Powered by VitePress OpenAPI

Get Product by ID (Admin)

GET
/bridge-payment/admin/products/{id}

Admin endpoint to get detailed information about a specific product.

Authorizations

SessionAuth

Session ID from Flowless authentication

TypeAPI Key (header: X-Session-ID)

Parameters

Path Parameters

id*

Product ID

Typestring
Required

Responses

Product details

Playground

Server
Authorization
Variables
Key
Value

Samples

Powered by VitePress OpenAPI

Create Product (Admin)

POST
/bridge-payment/admin/products

Admin endpoint to create a new product with intelligent pricing. You can provide either subtotal_cents or total_cents, and the system will calculate the missing fields automatically.

Authorizations

SessionAuth

Session ID from Flowless authentication

TypeAPI Key (header: X-Session-ID)

Request Body

application/json
JSON
{
"name": "string",
"description": "string",
"product_type": "string",
"is_recurring": false,
"subtotal_cents": 0,
"tax_cents": 0,
"discount_cents": 0,
"total_cents": 0,
"currency": "USD",
"billing_interval": "string",
"interval_count": 1,
"trial_days": 0,
"category": "string",
"is_active": true,
"metadata": {
}
}

Responses

Product created successfully

Playground

Server
Authorization
Body

Samples

Powered by VitePress OpenAPI

Update Product (Admin)

PUT
/bridge-payment/admin/products/{id}

Admin endpoint to update an existing product. Supports intelligent pricing updates.

Authorizations

SessionAuth

Session ID from Flowless authentication

TypeAPI Key (header: X-Session-ID)

Parameters

Path Parameters

id*

Product ID

Typestring
Required

Request Body

application/json
JSON
{
"name": "string",
"description": "string",
"subtotal_cents": 0,
"tax_cents": 0,
"discount_cents": 0,
"total_cents": 0,
"is_active": true,
"metadata": {
}
}

Responses

Product updated successfully

Playground

Server
Authorization
Variables
Key
Value
Body

Samples

Powered by VitePress OpenAPI

Delete Product (Admin)

DELETE
/bridge-payment/admin/products/{id}

Admin endpoint to delete a product. This will also remove it from payment providers if synced.

Authorizations

SessionAuth

Session ID from Flowless authentication

TypeAPI Key (header: X-Session-ID)

Parameters

Path Parameters

id*

Product ID

Typestring
Required

Responses

Product deleted successfully

Playground

Server
Authorization
Variables
Key
Value

Samples

Powered by VitePress OpenAPI

Syncing Products to Providers (Polar / Stripe / PayPal)

When you make structural or pricing changes to a product, you may need to synchronize them with your payment provider configurations so that the correct mapping IDs and prices reflect on Polar or Stripe.

Bridge Payments offers atomic sync endpoints:

Sync Product with Provider (Admin)

POST
/bridge-payment/admin/products/{id}/sync

Admin endpoint to synchronize a product with a payment provider (e.g., Stripe or Polar). Creates or updates the product in the provider's system.

Authorizations

SessionAuth

Session ID from Flowless authentication

TypeAPI Key (header: X-Session-ID)

Parameters

Path Parameters

id*

Product ID

Typestring
Required

Request Body

application/json
JSON
{
"provider_id": "stripe",
"force": false
}

Responses

Product synced successfully

Playground

Server
Authorization
Variables
Key
Value
Body

Samples

Powered by VitePress OpenAPI

Sync Specific Products (Admin)

POST
/bridge-payment/admin/sync/products

Admin endpoint to synchronize specific products with a payment provider. Useful for selective syncing instead of bulk operations.

Authorizations

SessionAuth

Session ID from Flowless authentication

TypeAPI Key (header: X-Session-ID)

Request Body

application/json
JSON
{
"product_ids": [
"string"
],
"provider_id": "stripe",
"force": false,
"dryRun": false,
"updatePrices": false
}

Responses

Products synced successfully

application/json
JSON
{
"success": true,
"data": {
"total": 0,
"successful": 0,
"failed": 0,
"results": [
{
}
],
"summary": {
"created": 0,
"updated": 0,
"skipped": 0,
"failed": 0
}
}
}

Playground

Server
Authorization
Body

Samples

Powered by VitePress OpenAPI

Sync All Products with Specific Provider (Admin)

POST
/bridge-payment/admin/sync/provider/{providerId}

Admin endpoint to bulk synchronize all products with a specific payment provider (e.g., Stripe or Polar).

Authorizations

SessionAuth

Session ID from Flowless authentication

TypeAPI Key (header: X-Session-ID)

Parameters

Path Parameters

providerId*

Payment provider ID

Typestring
Required
Valid values
"stripe""paypal""polar""authorize_net"

Request Body

application/json
JSON
{
"force": false,
"dryRun": false,
"updatePrices": false,
"product_ids": [
"string"
]
}

Responses

Provider sync completed

Playground

Server
Authorization
Variables
Key
Value
Body

Samples

Powered by VitePress OpenAPI

Polar Seamless Sync

When using Polar, calling the sync routes ensures your Bridge Payment products correctly provision or resolve the native Polar Benefit & Product IDs. This avoids manual data entry and prevents discrepancies between your local instance and your Polar dashboard.