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.