# MerchantBillingAssignment

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

Per-merchant billing assignment embedded on the Merchant aggregate root.
Replaces the standalone MerchantPricePlanAssignment container; a merchant has at most
one active price plan at a time, so the assignment behaves as a single-row property
rather than a separate aggregate. Lookup is a point-read on the merchant; the
platform never needs cross-time assignment history (audit log captures changes).

## Fields
- `pricePlanId` (string(uuid)): The price plan currently assigned to this merchant. Null means the merchant has no active billing plan and will be skipped by billing runs. (nullable)
- `effectiveFrom` (string(date-time)): Optional start date for the assignment. Billing runs prior to this date will skip the merchant. Null means effective immediately on assign. (nullable)
- `effectiveTo` (string(date-time)): Optional end date for the assignment. Billing runs after this date will skip the merchant. Null means open-ended. (nullable)
- `assignedAt` (string(date-time)): When the current price plan was assigned (UTC). Server-owned: stamped when `pricePlanId` changes to a plan, kept while the plan stays the same, cleared when the plan is removed, and any value a caller sends is ignored. Merchant billing counts one-time, quarterly and annual custom item charges from `effectiveFrom` when it is set, and from this otherwise. Null on an assignment written before it was recorded. (nullable)
- `fulfillmentPath` ([BillingFulfillmentPath](https://devportal.signapay-sbx.winkpg.io/docs/api/models/BillingFulfillmentPath.md)): Optional per-merchant override of the fulfillment path. When null the resolver inherits `defaultFulfillmentPath`. Only the path itself is overridable: collection plumbing (HPP id, collection merchant, payment-method allowlist) is reseller-level only and is never re-picked per assignment. This is a deliberate scope call to avoid re-introducing the legacy House Merchant per-assignment friction. (nullable)
  Values:
  - `Invoicing`: Generate an invoice in PhoeniXGate.Invoicing addressed to the Merchant and route payment through the reseller's configured Hosted Payment Page.
  - `RecurringContract`: Charge a stored payment method (card or ACH) against the Merchant on a schedule, via a recurring contract owned by the reseller's collection merchant.

## See also

- [All documentation](https://devportal.signapay-sbx.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
