Configured system

billing

Billing mock. TMF666 v4 billing account creation plus TMF637 v5 product inventory create, retrieve and patch.

billing.tmfmock.com

Aliases billing-system

Database-configured Runtime-routed Contract-shaped
5active endpoints
15bound paths
1configured alias
DBlive configuration
Endpoint index

Endpoints on the wire

Loaded from the same database configuration used to dispatch mock requests.

MethodPrimary routeEndpointStatus
POST billing.tmfmock.com/billingAccount create-billing-account 201
POST billing.tmfmock.com/product create-billing-product-instance 201
GET billing.tmfmock.com/product/:productId retrieve-billing-product-instance 200
PATCH billing.tmfmock.com/product/:productId activate-billing-product-instance 200
POST billing.tmfmock.com/productOrder create-product-order 201
Live configuration

Endpoints and bound rules

Every active method, path, request condition, and response formula currently bound to this system.

Endpoint 01

create-billing-account

TMF666 v4 createBillingAccount. Returns the account with a stable instance ID (Idempotency-Key when supplied, otherwise a generated UUID).

Status
201
Priority
0
Paths
3

Bound paths

  • POST billing.tmfmock.com/billingAccount
  • POST billing.tmfmock.com/tmf666/createBillingAccount
  • POST billing.tmfmock.com/tmf-api/accountManagement/v4/billingAccount

Request conditions

Default

Every request matching a bound method and path uses this rule.

Bound response rule

JSON formula
{
  "body": {
    "id": {
      "$var": "accountId"
    },
    "href": {
      "$concat": [
        {
          "$request": "origin"
        },
        "/billingAccount/",
        {
          "$var": "accountId"
        }
      ]
    },
    "name": {
      "$request": {
        "path": "body.name",
        "default": "Mock billing account"
      }
    },
    "@type": "BillingAccount",
    "state": {
      "$request": {
        "path": "body.state",
        "default": "Active"
      }
    },
    "accountType": {
      "$request": {
        "path": "body.accountType",
        "default": "Consumer"
      }
    },
    "confirmation": {
      "id": {
        "$random": "uuid"
      },
      "status": "ACCEPTED"
    },
    "relatedParty": [
      {
        "id": {
          "$request": {
            "path": "body.relatedParty.0.id",
            "default": "mock-customer"
          }
        },
        "name": {
          "$request": {
            "path": "body.relatedParty.0.name",
            "default": "Mock customer"
          }
        },
        "role": {
          "$request": {
            "path": "body.relatedParty.0.role",
            "default": "Customer"
          }
        },
        "@type": "RelatedParty",
        "@referredType": "Organization"
      }
    ],
    "paymentStatus": {
      "$request": {
        "path": "body.paymentStatus",
        "default": "Current"
      }
    }
  },
  "status": 201,
  "headers": {
    "Location": {
      "$concat": [
        {
          "$request": "origin"
        },
        "/billingAccount/",
        {
          "$var": "accountId"
        }
      ]
    },
    "Content-Type": "application/json; charset=utf-8"
  },
  "variables": {
    "accountId": {
      "$request": {
        "path": "headers.idempotency-key",
        "default": {
          "$random": "uuid"
        }
      }
    }
  }
}

Endpoint 02

create-billing-product-instance

TMF637 v5 createProduct. Returns the instantiated product with a stable instance ID (Idempotency-Key when supplied, otherwise a generated UUID).

Status
201
Priority
0
Paths
3

Bound paths

  • POST billing.tmfmock.com/product
  • POST billing.tmfmock.com/tmf637/createProduct
  • POST billing.tmfmock.com/tmf-api/productInventory/v5/product

Request conditions

Default

Every request matching a bound method and path uses this rule.

Bound response rule

JSON formula
{
  "body": {
    "id": {
      "$var": "productId"
    },
    "href": {
      "$concat": [
        {
          "$request": "origin"
        },
        "/product/",
        {
          "$var": "productId"
        }
      ]
    },
    "name": {
      "$request": {
        "path": "body.name",
        "default": "Mock product instance"
      }
    },
    "@type": "Product",
    "status": {
      "$request": {
        "path": "body.status",
        "default": "created"
      }
    },
    "isBundle": {
      "$request": {
        "path": "body.isBundle",
        "default": false
      }
    },
    "description": {
      "$request": {
        "path": "body.description",
        "default": "Mock billable product instance"
      }
    },
    "confirmation": {
      "id": {
        "$random": "uuid"
      },
      "status": "ACCEPTED"
    },
    "billingAccount": {
      "id": {
        "$request": {
          "path": "body.billingAccount.id",
          "default": "mock-billing-account"
        }
      },
      "href": {
        "$concat": [
          {
            "$request": "origin"
          },
          "/billingAccount/",
          {
            "$request": {
              "path": "body.billingAccount.id",
              "default": "mock-billing-account"
            }
          }
        ]
      },
      "@type": "BillingAccountRef"
    },
    "isCustomerVisible": true
  },
  "status": 201,
  "headers": {
    "Location": {
      "$concat": [
        {
          "$request": "origin"
        },
        "/product/",
        {
          "$var": "productId"
        }
      ]
    },
    "Content-Type": "application/json; charset=utf-8"
  },
  "variables": {
    "productId": {
      "$request": {
        "path": "headers.idempotency-key",
        "default": {
          "$random": "uuid"
        }
      }
    }
  }
}

Endpoint 03

retrieve-billing-product-instance

TMF637 v5 retrieveProduct. Returns the product instance identified by the path id.

Status
200
Priority
0
Paths
3

Bound paths

  • GET billing.tmfmock.com/product/:productId
  • GET billing.tmfmock.com/tmf637/retrieveProduct/:productId
  • GET billing.tmfmock.com/tmf-api/productInventory/v5/product/:productId

Request conditions

Default

Every request matching a bound method and path uses this rule.

Bound response rule

JSON formula
{
  "body": {
    "id": {
      "$var": "productId"
    },
    "href": {
      "$concat": [
        {
          "$request": "origin"
        },
        "/product/",
        {
          "$var": "productId"
        }
      ]
    },
    "name": "Mock product instance",
    "@type": "Product",
    "status": "active",
    "isBundle": false,
    "description": "Mock billable product instance",
    "confirmation": {
      "id": {
        "$random": "uuid"
      },
      "status": "ACCEPTED"
    },
    "billingAccount": {
      "id": "mock-billing-account",
      "href": {
        "$concat": [
          {
            "$request": "origin"
          },
          "/billingAccount/mock-billing-account"
        ]
      },
      "@type": "BillingAccountRef"
    },
    "isCustomerVisible": true
  },
  "status": 200,
  "headers": {
    "Content-Type": "application/json; charset=utf-8"
  },
  "variables": {
    "productId": {
      "$request": {
        "path": "params.productId",
        "default": "mock-product"
      }
    }
  }
}

Endpoint 04

activate-billing-product-instance

TMF637 v5 patchProduct. Returns the product instance with status echoed from the request body, defaulting to active.

Status
200
Priority
0
Paths
3

Bound paths

  • PATCH billing.tmfmock.com/product/:productId
  • PATCH billing.tmfmock.com/tmf637/patchProduct/:productId
  • PATCH billing.tmfmock.com/tmf-api/productInventory/v5/product/:productId

Request conditions

Default

Every request matching a bound method and path uses this rule.

Bound response rule

JSON formula
{
  "body": {
    "id": {
      "$var": "productId"
    },
    "href": {
      "$concat": [
        {
          "$request": "origin"
        },
        "/product/",
        {
          "$var": "productId"
        }
      ]
    },
    "name": {
      "$request": {
        "path": "body.name",
        "default": "Mock product instance"
      }
    },
    "@type": "Product",
    "status": {
      "$request": {
        "path": "body.status",
        "default": "active"
      }
    },
    "isBundle": false,
    "description": {
      "$request": {
        "path": "body.description",
        "default": "Mock billable product instance"
      }
    },
    "confirmation": {
      "id": {
        "$random": "uuid"
      },
      "status": "ACCEPTED"
    },
    "billingAccount": {
      "id": {
        "$request": {
          "path": "body.billingAccount.id",
          "default": "mock-billing-account"
        }
      },
      "href": {
        "$concat": [
          {
            "$request": "origin"
          },
          "/billingAccount/",
          {
            "$request": {
              "path": "body.billingAccount.id",
              "default": "mock-billing-account"
            }
          }
        ]
      },
      "@type": "BillingAccountRef"
    },
    "isCustomerVisible": true
  },
  "status": 200,
  "headers": {
    "Content-Type": "application/json; charset=utf-8"
  },
  "variables": {
    "productId": {
      "$request": {
        "path": "params.productId",
        "default": "mock-product"
      }
    }
  }
}

Endpoint 05

create-product-order

TMF622 createProductOrder. Returns the product order in state acknowledged with a stable instance ID (Idempotency-Key when supplied, otherwise a generated UUID).

Status
201
Priority
0
Paths
3

Bound paths

  • POST billing.tmfmock.com/productOrder
  • POST billing.tmfmock.com/tmf622/createProductOrder
  • POST billing.tmfmock.com/tmf-api/productOrderingManagement/v4/productOrder

Request conditions

Default

Every request matching a bound method and path uses this rule.

Bound response rule

JSON formula
{
  "body": {
    "id": {
      "$var": "orderId"
    },
    "href": {
      "$concat": [
        {
          "$request": "origin"
        },
        "/productOrder/",
        {
          "$var": "orderId"
        }
      ]
    },
    "@type": "ProductOrder",
    "state": "acknowledged",
    "category": {
      "$request": {
        "path": "body.category",
        "default": "consumer"
      }
    },
    "priority": {
      "$request": {
        "path": "body.priority",
        "default": "3"
      }
    },
    "orderDate": "2026-08-31T00:00:00.000Z",
    "externalId": {
      "$request": {
        "path": "body.externalId",
        "default": {
          "$random": {
            "type": "digits",
            "length": 8,
            "prefix": "CRM-"
          }
        }
      }
    },
    "description": {
      "$request": {
        "path": "body.description",
        "default": "Mock product order"
      }
    },
    "confirmation": {
      "id": {
        "$random": "uuid"
      },
      "status": "ACCEPTED"
    },
    "relatedParty": {
      "$request": {
        "path": "body.relatedParty",
        "default": [
          {
            "id": "mock-customer",
            "name": "Mock customer",
            "role": "Customer",
            "@type": "RelatedParty",
            "@referredType": "Organization"
          }
        ]
      }
    },
    "billingAccount": {
      "id": {
        "$request": {
          "path": "body.billingAccount.id",
          "default": "mock-billing-account"
        }
      },
      "href": {
        "$concat": [
          {
            "$request": "origin"
          },
          "/billingAccount/",
          {
            "$request": {
              "path": "body.billingAccount.id",
              "default": "mock-billing-account"
            }
          }
        ]
      },
      "name": {
        "$request": {
          "path": "body.billingAccount.name",
          "default": "Mock billing account"
        }
      },
      "@referredType": "BillingAccount"
    },
    "productOrderItem": {
      "$request": {
        "path": "body.productOrderItem",
        "default": [
          {
            "id": "1",
            "@type": "ProductOrderItem",
            "state": "acknowledged",
            "action": "add",
            "quantity": 1,
            "productOffering": {
              "id": "offer-mobile-basic",
              "name": "Mobile Basic",
              "@referredType": "ProductOffering"
            }
          }
        ]
      }
    },
    "requestedStartDate": {
      "$request": {
        "path": "body.requestedStartDate",
        "default": "2026-09-01T09:00:00.000Z"
      }
    },
    "expectedCompletionDate": {
      "$request": {
        "path": "body.expectedCompletionDate",
        "default": {
          "$request": {
            "path": "body.requestedCompletionDate",
            "default": "2026-09-05T17:00:00.000Z"
          }
        }
      }
    },
    "requestedCompletionDate": {
      "$request": {
        "path": "body.requestedCompletionDate",
        "default": "2026-09-05T17:00:00.000Z"
      }
    }
  },
  "status": 201,
  "headers": {
    "Location": {
      "$concat": [
        {
          "$request": "origin"
        },
        "/productOrder/",
        {
          "$var": "orderId"
        }
      ]
    },
    "Content-Type": "application/json; charset=utf-8"
  },
  "variables": {
    "orderId": {
      "$request": {
        "path": "headers.idempotency-key",
        "default": {
          "$random": "uuid"
        }
      }
    }
  }
}
Incoming traffic

Requests and responses

Waiting for traffic

No requests captured yet.