---
title: "Register an AWS Marketplace agreement"
method: POST
path: "/marketplace/agreements"
tags: ["Marketplace"]
---

# Register an AWS Marketplace agreement

`POST /marketplace/agreements`

Registers an AWS Marketplace buyer agreement against an existing Flexprice subscription, upserting plan/subscription/customer integration mappings in one call.

## Request body

- RegisterMarketplaceAgreementRequest
  - `aws` AWSMarketplaceAgreement
    - `concurrent_agreements` boolean — if true, ProductCode is omitted when reporting
    - `customer_aws_account_id` string, required — -> BatchMeterUsage's CustomerAWSAccountId
    - `dimension` string, required — -> BatchMeterUsage's Dimension (always "usage_fee" in the cents model)
    - `license_arn` string, required — -> BatchMeterUsage's LicenseArn; identifies the buyer's agreement
    - `product_code` string, required — -> BatchMeterUsage's ProductCode (omitted when ConcurrentAgreements)
  - `azure` AzureMarketplaceAgreement
    - `beneficiary_account_id` string, required — writes the customer mapping; not read in the report payload
    - `dimension` string, required — -> usageEvent's dimension (always "usage_fee" in the cents model)
    - `plan_id` string, required — -> usageEvent's planId; Azure's plan id, distinct from the request's top-level PlanID
    - `resource_id` string, required — -> usageEvent's resourceId; the Azure SaaS subscription id
  - `customer_id` string, required
  - `gcp` GCPMarketplaceAgreement
    - `account_id` string, required — writes the customer mapping; not read in the report payload
    - `metric_name` string, required — -> services.report's metricName (always "{service_name}/usage_fee")
    - `service_name` string, required — -> services.report URL's service_name; identifies the product
    - `usage_reporting_id` string, required — -> services.report's consumerId; identifies the buyer
  - `plan_id` string, required
  - `provider` 'flexprice' | 'stripe' | 's3' | 'gcs' | 'hubspot' | 'razorpay' | 'chargebee' | 'quickbooks' | 'zoho_books' | 'nomod' | 'moyasar' | 'paddle' | 'whop' | 'tabs' | 'aws_marketplace' | 'gcp_marketplace' | 'azure_marketplace', required
  - `subscription_id` string, required

## Response `201`

Created

- RegisterMarketplaceAgreementResponse
  - `customer_mapping_id` string
  - `plan_mapping_id` string
  - `status` string
  - `subscription_mapping_id` string

## Changes

- **2026-09-01** `e1d4e27b5677` — 1 info
  - added the new `gcs` enum value to the request property `provider`
- **2026-07-31** `50b7421a9690` — 1 breaking, 5 warning, 19 info
  - request property `provider` was restricted to a list of enum values
  - removed the request property `concurrent_agreements`
  - removed the request property `customer_aws_account_id`
  - removed the request property `dimension`
  - …21 more
- **2026-07-15** `f8ecf435d25d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/flexprice/apis/flexprice-api/changes/marketplace/agreements/post.md)

---

[API](https://skmtc.dev/flexprice/apis/flexprice-api.md) · [All operations](https://skmtc.dev/flexprice/apis/flexprice-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/flexprice/flexprice-api/revisions/fd7112159d0a/schema)
