Skip to main content
The Billing API lets you model products as price points, orchestrate checkout with your PSPs, and manage subscriptions end-to-end — including pausing/resuming, discounts, migrations, and refunds.
This doc covers the FunnelFox Billing API only. If you’re using the FunnelFox API, go to the FunnelFox API section.

Base URL

All API requests should be made to:
https://billing.funnelfox.com/{org_id}/v1
Replace {org_id} with your organization ID provided by your Customer Success Manager when your FunnelFox Billing account was created.
Don’t confuse {org_id} with your FunnelFox Project ID found in your FunnelFox General settings.

Available endpoints

  • POST /payment/refund — Refund an order (full or partial; optional “soft” refund)
  • POST /subscription/enable_autorenew — Turn on autorenew
  • POST /subscription/disable_autorenew — Turn off autorenew
  • POST /subscription/migration — Move a sub to another price point (price_prorate, delayed_start)
  • POST /discount — Apply a percentage discount for a number of iterations
  • POST /subscription/defer — Delay the next charge until a time
  • POST /subscription/pause — Stop billing and access until a time
  • POST /subscription/resume — Cancel pause and restart billing/access
  • POST /price_points — List price points (filter by ident)
  • POST /pp/export_csv — Export all price points to CSV
  • POST /pp/import_csv — Bulk-create price points from CSV
  • POST /pp/update — Update by ident
  • POST /pp/create — Create a price point
  • POST /feature/create — Create a feature (timebased, lifetime, consumable)
  • POST /features — List all features
  • POST /my_assets — Fetch user ownership (subscriptions & one-off purchases)
  • POST /payments_history — Return successful payments of user
  • POST /transaction_report — Return all transactions
  • POST /search_users — Search user
  • POST /checkout/create_client_session — Get a client token & order for the selected price point
  • POST /checkout/update_client_session — Re-bind an order to a different price point
  • POST /checkout/create_payment — Charge using a payment_method_token
  • POST /checkout/one_click — One-click purchase by external_id + pp_ident
  • POST /checkout/resume_payment — Complete a payment after additional action
Learn more in the FunnelFox Billing API reference.

Making requests

Path parameters

All endpoints defined under https://billing.funnelfox.com/{org_id}/v1/... require the org_id in the URL path.

Request body

Most endpoints accept JSON parameters in the request body. Parameters vary by endpoint - see the API Reference for details.

Example request

curl -X POST 'https://billing.funnelfox.com/{org_id}/v1/price_points' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "ident": null
  }'

Response format

All successful responses follow this structure:
{
  "data": {
    // Response data specific to the endpoint
  },
  "status": "success"
}

Example response

{
  "data": {
    "price_points": [
      {
        "ident": "monthly-premium",
        "currency": {
          "code": "USD",
          "minor_units": 2,
          "title": "US Dollar",
          "symbol": "$"
        },
        "intro_type": "free_trial",
        "lifetime_price": null,
        "intro_free_trial_period": 7,
        "intro_free_trial_period_duration": "days",
        "intro_paid_trial_price": null,
        "intro_paid_trial_period": null,
        "intro_paid_trial_period_duration": null,
        "next_price": "9.99",
        "next_period": 1,
        "next_period_duration": "months",
        "features": [
          {
            "ident": "premium-access"
          }
        ]
      }
    ]
  },
  "status": "success"
}

Filtering

The POST /price_points endpoint is the only one that supports narrowing results by ident to retrieve specific price points. Pass an ident value to retrieve only the matching price point:
curl -X POST 'https://billing.funnelfox.com/{org_id}/v1/price_points' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "ident": "pro_monthly_usd"
  }'
List all price points (no filter):
curl -X POST 'https://billing.funnelfox.com/{org_id}/v1/price_points' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{}'

Error handling

The API returns standard HTTP status codes with detailed error messages.
{
  "status": "error",
  "req_id": "acMMsjP9",
  "error": [
    {
      "msg": "Error description",
      "type": "error_type"
    }
  ]
}
Response fields:
  • status - Always "error" for failed requests
  • req_id - Unique request identifier for debugging
  • error - Array of error objects with msg (description) and type (error category)