Create an owner downstream fee schedule
Plan 2026-06-03-harmonization-sprint T049. Creates an owner-class tenant's downstream fee schedule for a (product_key, action_key) — priced through the fee engine (the product/action key plays the channel_code role). Owner-class only: a subscriber-class tenant receives 403 reseller_config_forbidden from the commercial-class reseller gate before the handler runs. The repo closes any prior open schedule for the same key in the same transaction.
Plan 2026-06-03-harmonization-sprint T049. Creates an owner-class tenant's downstream fee schedule for a (product_key, action_key) — priced through the fee engine (the product/action key plays the channel_code role). Owner-class only: a subscriber-class tenant receives 403 reseller_config_forbidden from the commercial-class reseller gate before the handler runs. The repo closes any prior open schedule for the same key in the same transaction.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/payments/admin/fee-schedules" \ -H "Content-Type: application/json" \ -d '{ "product_key": "pos", "action_key": "transaction", "fee_type": "flat", "amount_cents": 1000, "rate_bps": 0 }'{
"id": "0190a000-0000-7000-8000-000000000010",
"tenant_id": "0190a000-0000-7000-8000-000000000001",
"product_key": "pos",
"action_key": "transaction",
"fee_type": "flat",
"amount_cents": 1000,
"rate_bps": 0,
"currency": "IDR",
"effective_from": "2026-06-04T00:00:00Z",
"active": true
}{
"error": "validation_failed",
"message": "amount_idr is required",
"request_id": "req_018f4d9f"
}{
"error": "validation_failed",
"message": "amount_idr is required",
"request_id": "req_018f4d9f"
}Was this page helpful?