---
title: "Register a new product"
method: POST
path: "/products"
tags: ["Products"]
---

# Register a new product

`POST /products`

Create a new product listing and initialize its configuration/entitlements

## Query parameters

- `view` 'id' | 'credential' | 'integrationType' | 'entitlement' | 'webhook' | 'complete' — Product resource view

## Headers

- `Authorization` string, required

## Request body

- ProductRequest
  - `name` Name, required — unresolved $ref
  - `listingName` ListingName, required — unresolved $ref
  - `requestTypes` RequestTypes, required — unresolved $ref
  - `interfaceUrl` InterfaceUrl, required — unresolved $ref
  - `adminInterfaceUrl` AdminInterfaceUrl — unresolved $ref
  - `tags` ProductTags — Product tags
    - `applications` string[] — Encompass applications a product supports
    - `categories` string[] — Category descriptors for a product - for organization/listing in an Encompass application
    - `workflows` string[] — Transaction initiation workflows a product supports
  - `credentials` ProductCredentialPropertySchema[] — Schema definition for the user/organization credentials a product requires
    - `id` string, required — Unique key for credential property
    - `type` 'string' | 'number' | 'boolean', required — Credential property data type
    - `title` string, required — Credential property title
    - `required` boolean — Credential property required indicator
    - `pattern` string — Regex pattern the property must match
    - `minimum` integer — Credential property minimum length
    - `maximum` integer — Credential property minimum length
    - `secret` boolean — Credential secret indicator
    - `scope` 'user' | 'company' — Credential scope
  - `webhooks` ProductWebhook[], required — Transaction webhooks a product subscribes for
    - `resource` 'urn:elli:epc:transaction' | 'urn:elli:epc:transaction:event', required — URN for transaction resource being subscribed to
    - `url` string, required — URL where callback HTTP POST request will be made
    - `signingkey` string, required — Secret key using which Webhook HMAC Elli-Signature request header will be generated
    - `events` string[], required — Transaction resource event types to subscribe for
  - `extensionLimit` integer — Number of allowed custom extensions to a products default data entitlements
  - `entitlements` ProductEntitlements, required — A products data and access entitlements
    - `access` ProductAccessEntitlements, required — Product access control list
      - `allow` string[], required — Encompass application instances allowed access to the product
      - `deny` string[], required — Encompass application instances denied access to the product
    - `data` ProductDataEntitlements, required — A products data entitlements
      - `origin` ProductRequestDataEntitlementsSchema, required — Schema definition for a set of data entitlements
        - `fields` ProductDataEntitlementsField[], required — The data fields a product can deliver for the given request type
          - `fieldId` string — Unique identifier for data field in Partner Loan Model
          - `jsonPath` string, required — JSON path that matches data field position in Partner Loan Model
          - `description` string — Description for data field in Partner Loan Model
      - `transactions` object[], required — Product transaction data entitlements
        - `requestTypes` ProductRequestType[], required — Collection of Request Types supported by the subject product
        - `request` ProductRequestDataEntitlementsSchema, required — Schema definition for a set of data entitlements
          - `fields` ProductDataEntitlementsField[], required — The data fields a product can deliver for the given request type
            - `fieldId` string — Unique identifier for data field in Partner Loan Model
            - `jsonPath` string, required — JSON path that matches data field position in Partner Loan Model
            - `description` string — Description for data field in Partner Loan Model
        - `response` ProductResponseDataEntitlementsSchema, required — Schema definition for a set of data entitlements
          - `fields` ProductDataEntitlementsField[], required — The data fields a product can deliver for the given request type
            - `fieldId` string — Unique identifier for data field in Partner Loan Model
            - `jsonPath` string, required — JSON path that matches data field position in Partner Loan Model
            - `description` string — Description for data field in Partner Loan Model
          - `resources` ProductResourceType[] — The enumerated resource types a product can deliver in a response for the given request type
          - `results` ProductDataEntitlementsResult[] — The custom transaction results a product can deliver for the given request type
            - `action` 'LOCK' | 'RELOCK' | 'EXTEND' | 'CANCEL' | 'LOCK_CONFIRM' — One of an enumerated set of supported custom transaction result actions
            - `formats` ProductDataEntitlementsResultFormat[]
      - `created` string, date-time — Resource created/updated time-stamp (IS0 8601 UTC)
      - `createdBy` string, date-time — Resource created/updated time-stamp (IS0 8601 UTC)
      - `updated` string, date-time — Resource created/updated time-stamp (IS0 8601 UTC)
      - `updatedBy` string, date-time — Resource created/updated time-stamp (IS0 8601 UTC)

## Response `201`

A new product resource

- Product
  - `id` string, uuid — Unique identifier (GUID) for the subject resource
  - `partnerId` integer, required — Unique identifier for the Partner who owns the product
  - `name` string, required — Unique name for the product
  - `listingName` string, required — Name the product will be listed as on an Encompass application
  - `requestTypes` ProductRequestType[], required — The different types of transaction requests lenders/borrowers can initiate with the subject product. Data entitlements for the product are indexed around these request types.
  - `environment` 'sandbox' | 'production' — A products environment
  - `status` 'development' | 'inReview' | 'approved' | 'deprecated' — A products status
  - `integrationType` 'ASYNC' | 'P2P', required — Product integration pattern
  - `interfaceUrl` string — URL for the user-interface that will be presented to borrowers/lenders during manual ordering workflows
  - `adminInterfaceUrl` string — URL for the user-interface that will be presented to an administrator during 1-click/automated order setup workflows
  - `tags` ProductTags — Product tags
    - `applications` string[] — Encompass applications a product supports
    - `categories` string[] — Category descriptors for a product - for organization/listing in an Encompass application
    - `workflows` string[] — Transaction initiation workflows a product supports
  - `credentials` ProductCredentialPropertySchema[] — Schema definition for the user/organization credentials a product requires
    - `id` string, required — Unique key for credential property
    - `type` 'string' | 'number' | 'boolean', required — Credential property data type
    - `title` string, required — Credential property title
    - `required` boolean — Credential property required indicator
    - `pattern` string — Regex pattern the property must match
    - `minimum` integer — Credential property minimum length
    - `maximum` integer — Credential property minimum length
    - `secret` boolean — Credential secret indicator
    - `scope` 'user' | 'company' — Credential scope
  - `webhooks` ProductWebhook[], required — Transaction webhooks a product subscribes for
    - `resource` 'urn:elli:epc:transaction' | 'urn:elli:epc:transaction:event', required — URN for transaction resource being subscribed to
    - `url` string, required — URL where callback HTTP POST request will be made
    - `signingkey` string, required — Secret key using which Webhook HMAC Elli-Signature request header will be generated
    - `events` string[], required — Transaction resource event types to subscribe for
  - `extensionLimit` integer — Number of allowed custom extensions to a products default data entitlements
  - `entitlements` ProductEntitlements, required — A products data and access entitlements
    - `access` ProductAccessEntitlements, required — Product access control list
      - `allow` string[], required — Encompass application instances allowed access to the product
      - `deny` string[], required — Encompass application instances denied access to the product
    - `data` ProductDataEntitlements, required — A products data entitlements
      - `origin` ProductRequestDataEntitlementsSchema, required — Schema definition for a set of data entitlements
        - `fields` ProductDataEntitlementsField[], required — The data fields a product can deliver for the given request type
          - `fieldId` string — Unique identifier for data field in Partner Loan Model
          - `jsonPath` string, required — JSON path that matches data field position in Partner Loan Model
          - `description` string — Description for data field in Partner Loan Model
      - `transactions` object[], required — Product transaction data entitlements
        - `requestTypes` ProductRequestType[], required — Collection of Request Types supported by the subject product
        - `request` ProductRequestDataEntitlementsSchema, required — Schema definition for a set of data entitlements
          - `fields` ProductDataEntitlementsField[], required — The data fields a product can deliver for the given request type
            - `fieldId` string — Unique identifier for data field in Partner Loan Model
            - `jsonPath` string, required — JSON path that matches data field position in Partner Loan Model
            - `description` string — Description for data field in Partner Loan Model
        - `response` ProductResponseDataEntitlementsSchema, required — Schema definition for a set of data entitlements
          - `fields` ProductDataEntitlementsField[], required — The data fields a product can deliver for the given request type
            - `fieldId` string — Unique identifier for data field in Partner Loan Model
            - `jsonPath` string, required — JSON path that matches data field position in Partner Loan Model
            - `description` string — Description for data field in Partner Loan Model
          - `resources` ProductResourceType[] — The enumerated resource types a product can deliver in a response for the given request type
          - `results` ProductDataEntitlementsResult[] — The custom transaction results a product can deliver for the given request type
            - `action` 'LOCK' | 'RELOCK' | 'EXTEND' | 'CANCEL' | 'LOCK_CONFIRM' — One of an enumerated set of supported custom transaction result actions
            - `formats` ProductDataEntitlementsResultFormat[]
      - `created` string, date-time — Resource created/updated time-stamp (IS0 8601 UTC)
      - `createdBy` string, date-time — Resource created/updated time-stamp (IS0 8601 UTC)
      - `updated` string, date-time — Resource created/updated time-stamp (IS0 8601 UTC)
      - `updatedBy` string, date-time — Resource created/updated time-stamp (IS0 8601 UTC)
  - `created` string, date-time — Resource created/updated time-stamp (IS0 8601 UTC)
  - `createdBy` string — Entity that created/updated the subject resource
  - `updated` string, date-time — Resource created/updated time-stamp (IS0 8601 UTC)
  - `updatedBy` string — Entity that created/updated the subject resource

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal Server Error

---

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