| Required role: | Admin | Required permissions: | CanAccess, CanAdd | 
| POST | /async/products | 
|---|
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| Name | form | string | No | The name of the product. | 
| Description | form | string | No | The description of the product. | 
| Version | form | string | No | The version of the product. | 
| Tags | form | List<string> | Yes | Tags associated with the product. | 
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| Product | form | Product | No | The product data of the response. | 
| Orders | form | List<Order> | Yes | The list of orders associated with the encapsulated product. | 
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| ResponseStatus | form | ResponseStatus | No | Data structure that holds error information from a service operation. | 
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| Id | form | int | Yes | The unique identifier of the product. | 
| Index | form | int | Yes | The position of this instance in a collection of 'Product' instances | 
| Name | form | string | Yes | The name of the product. | 
| Version | form | string | Yes | The version of the product. | 
| Description | form | string | No | The version of the product. | 
| Tags | form | List<string> | Yes | Tags associated with the product. | 
| Name | Parameter | Data Type | Required | Description | 
|---|---|---|---|---|
| Id | form | int | Yes | The unique identifier of the order. | 
| ProductId | form | int | Yes | The unique identifier of the product, for which the order is made. | 
| AccountId | form | int | Yes | The unique identifier of the user account, who placed the order. | 
| Name | form | string | Yes | A name to identify the order. | 
| ServiceName | form | string | No | The name of the service, for which the order was made. | 
| RequestTimestamp | form | DateTime? | No | The time stamp at which the order was initiated. | 
| ResponseTimestamp | form | DateTime? | No | The time stamp at which the order was completed. | 
| RequestUri | form | string | No | The URI from which the order was initiated. | 
| RequestHttpMethod | form | string | No | The HTTP method of the order request. | 
| RequestDuration | form | TimeSpan? | No | The duration of the order request. | 
| ResponseStatusCode | form | HttpStatusCode | No | The HTTP status code of the order request. | 
| ClientIPAddress | form | string | No | The IP address of client, who placed the order. | 
| UnitOfMeasurement | form | string | No | The unit of measurement for the order. | 
| ProcessType | form | string | No | The type of process, for which the order is charged. | 
| DataType | form | string | No | The type of data, for which the order is charged. | 
| DataName | form | string | No | The name of the data, for which the order is charged. | 
| CreationDate | form | DateTime | No | The date of creation of the order. | 
| ExpiryDate | form | DateTime? | No | The final date to retain the order in the records. After this date, the order is expunged from the records. | 
| IsTest | form | bool | No | Indicates whether the order is simulated for test purposes. True if the order is simulated for test purposes; otherwise it is a false order for production purposes. | 
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /async/products HTTP/1.1 
Host: taxfiling.staging.pwc.de 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
	name: String,
	description: String,
	version: String,
	tags: 
	[
		String
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
	product: 
	{
		id: 0,
		index: 0,
		name: String,
		version: String,
		description: String,
		tags: 
		[
			String
		]
	},
	orders: 
	[
		{
			id: 0,
			productId: 0,
			accountId: 0,
			name: String,
			serviceName: String,
			requestTimestamp: 0001-01-01,
			responseTimestamp: 0001-01-01,
			requestUri: String,
			requestHttpMethod: String,
			requestDuration: PT0S,
			responseStatusCode: Continue,
			clientIPAddress: String,
			unitOfMeasurement: String,
			processType: String,
			dataType: String,
			dataName: String,
			creationDate: 0001-01-01,
			expiryDate: 0001-01-01,
			isTest: False
		}
	],
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}