Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.paywithsoap.com/llms.txt

Use this file to discover all available pages before exploring further.

Overview

A digital goods purchase allows customers to buy virtual currency, in-game tokens, sweepstakes coins, and other digital products. This uses the line items checkout flow where you specify the products, prices, and quantities being purchased.

How It Works

  1. Create products in Soap, or pass inline dynamic product details directly in line_items.
  2. Create a checkout session with type: "deposit" and include line_items.
  3. The customer is redirected to the Soap-hosted checkout page showing the items and total.
  4. The customer selects a payment method and completes the purchase.
  5. Upon completion, a webhook is fired and the customer is redirected back to your app.

API Request

You can also manage products from the Soap dashboard and reference them by ID. Simply pass line_items: [{ "product_id": "pr_XXX", "quantity": 1 }] instead of inline product details.
curl -X POST 'https://api-sandbox.paywithsoap.com/api/v1/checkouts' \
--header 'Content-Type: application/json' \
--header 'Authorization: YOUR_API_KEY' \
--data '{
    "customer_id": "cus_vi57KegYgcRqcGHqip8q6UZiqtrwMT870",
    "type": "deposit",
    "line_items": [
        {
            "name": "Gold Coins Pack",
            "price_cents": 999,
            "quantity": 1,
            "sku": "gold-coins-1000",
            "url": "https://example.com/products/gold-coins.png",
            "dedup": true
        }
    ],
    "experience": "web",
    "return_url": "https://myapp.com/store"
}'

Key Parameters

ParameterRequiredDescription
customer_idYesThe customer’s unique identifier
typeYesMust be "deposit"
line_itemsYesArray of existing product references or inline dynamic products
experienceNo"web" or "webview"
return_urlNoWhere to redirect the customer after completion

Line Item Parameters

Each line item can reference an existing product or define a product inline.
ParameterRequiredDescription
line_items[].product_idYes for existing productsSoap product ID for an existing product. Use with quantity.
line_items[].nameYes for inline productsProduct name to create and display in checkout.
line_items[].price_centsYes for inline productsUnit price in cents. Must be at least 1.
line_items[].quantityYesNumber of units to purchase. Must be at least 1.
line_items[].skuRequired when dedup is trueStable merchant SKU used with price_cents to find an existing product for this business.
line_items[].urlNoProduct image URL shown in checkout where supported.
line_items[].dedupNoWhen true, Soap reuses an existing product for the same business when sku and price_cents match. Requires sku.

When to Use

  • Virtual currency purchases (gold coins, tokens, credits, etc.)
  • Sweepstakes coin packages
  • Any digital goods tied to a product catalog or priced dynamically at checkout time

← Back to Create Checkout

View the full API reference for creating checkouts.