Products

Create a product

Creates a new product for the authenticated provider.

post/v1/sdk/products

Request body

descriptionstring
imageUrlstring
isManagedMcpboolean
isMcpPayboolean
metadataobject
namestring required
productTypestring
taxBehavior'auto' | 'inclusive' | 'exclusive'

Response

Product created successfully

balancenumber required

Product balance in cents

createdAtstring required

Creation timestamp

descriptionstring

Product description

imageUrlstring

URL to the product image

isManagedMcpboolean required

Whether this product uses the Managed MCP integration (SolvaPay reverse proxy)

isMcpPayboolean required

Deprecated alias of isManagedMcp. Prefer isManagedMcp; still emitted for wire compatibility.

mcpobject

MCP linkage details for MCP-enabled products

metadataobject

Arbitrary key-value metadata

namestring required

Product name

productTypestring

Free-form product type

referencestring required

Product reference

statusstring required

Product status

totalTransactionsnumber required

Total number of transactions

updatedAtstring required

Last update timestamp

Example response

{
  "config": {
    "deliveryMethod": "api",
    "fulfillmentType": "digital",
    "validityPeriod": 30
  },
  "mcp": {
    "defaultPlanRef": "pln_FREE123",
    "mcpProxyUrl": "https://acme-docs.mcp.solvapay.com/mcp",
    "mcpServerRef": "mcp_ABC123",
    "mcpSubdomain": "acme-docs",
    "originUrl": "https://origin.example.com/mcp"
  },
  "name": "AI Writing Assistant",
  "plans": [
    {
      "currency": "USD",
      "currencySymbol": "$",
      "description": "Best for teams getting started",
      "isActive": true,
      "name": "Starter",
      "price": 2999,
      "reference": "pln_1A2B3C4D",
      "requiresPayment": true,
      "status": "active",
      "type": "recurring"
    }
  ],
  "reference": "prd_1A2B3C4D",
  "status": "active"
}

Changes

Changed in 14 of the 27 revisions of this API.333874

    • added the new optional request property

      new-optional-request-property

    • response property isMcpPay deprecated

      response-property-deprecated

    • added the required property to the response with the status

      response-required-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

  • 032545ac8d132121See the full diff
    • the response property // became optional for the status

      response-property-became-optional

    • removed the required property // from the response with the status

      response-required-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • added the required property // to the response with the status

      response-required-property-added

    This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • the request property became optional

      request-property-became-optional

    • the request property became optional

      request-property-became-optional

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the required property // to the response with the status

      response-required-property-added

    This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • bbc2ff2bc849452See the full diff
    • the request property's minLength was increased from 1 to 2

      request-property-min-length-increased

    • added the pattern ^[\p{L}\p{N} .,'"&\/()+:\-]*$ to the request property

      request-property-pattern-added

    • added the pattern ^[\p{L}\p{N}\s.,'"&\/()+:%;?!@#_[\]\-]*$ to the request property

      request-property-pattern-added

    • the / request property type changed from number to integer

      request-property-type-changed

    • the / request property's exclusiveMinimum was set to true

      request-property-exclusive-min-set

    • the request property's maxLength was set to 1000

      request-property-max-length-set

    • the request property's maxLength was set to 100

      request-property-max-length-set

    • the request property's maxLength was set to 100

      request-property-max-length-set

    • the / request property's min was set to 0.00

      request-property-min-set

    • added the new optional request property

      new-optional-request-property

    • added the required property // to the response with the status

      response-required-property-added

    • the endpoint scheme security SecretKey was added to the API

      api-security-added

    • the endpoint scheme security bearer was removed from the API

      api-security-removed

    This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • removed the optional property // from the response with the status

      response-optional-property-removed

    • added the optional property // to the response with the status

      response-optional-property-added

    • removed the required property from the response with the status

      response-required-property-removed

    • removed the required property // from the response with the status

      response-required-property-removed

    • added the optional property // to the response with the status

      response-optional-property-added

    This revision also has 2 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • 88abf6f50f11514See the full diff
    • the request property became required

      request-property-became-required

    • the request property became required

      request-property-became-required

    • the request property's minLength was increased from 0 to 1

      request-property-min-length-increased

    • the request property type changed from no type to object

      request-property-type-changed

    • removed the required property // from the response with the status

      response-required-property-removed

    • removed from the request property allOf list

      request-property-all-of-removed

    • added the new optional request property /

      new-optional-request-property

    • added the new optional request property /

      new-optional-request-property

    • added the new optional request property /

      new-optional-request-property

    • the request property default value false was removed

      request-property-default-value-removed

    This revision also has 44 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • e0583a41987c328See the full diff
    • the //// request property type changed from no type to object

      request-property-type-changed

    • the //// response's property type changed from no type to object for status

      response-property-type-changed

    • the / response's property type changed from no type to object for status

      response-property-type-changed

    • added the new optional request property /////

      new-optional-request-property

    • added the new optional request property /////

      new-optional-request-property

    • added the new optional request property /////

      new-optional-request-property

    • added the optional property ///// to the response with the status

      response-optional-property-added

    • added the optional property ///// to the response with the status

      response-optional-property-added

    • added the optional property ///// to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the optional property // to the response with the status

      response-optional-property-added

    • added the required property // to the response with the status

      response-required-property-added

    • added the required property // to the response with the status

      response-required-property-added

    • added the required property // to the response with the status

      response-required-property-added

    • added the required property // to the response with the status

      response-required-property-added

    • added the required property // to the response with the status

      response-required-property-added

    • added the required property // to the response with the status

      response-required-property-added

    • added the required property // to the response with the status

      response-required-property-added

    • added the required property // to the response with the status

      response-required-property-added

    • added the required property // to the response with the status

      response-required-property-added

    • added the required property // to the response with the status

      response-required-property-added

    This revision also has 2 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog