Add billing automations
POST /api/connector/v1/billingAutomations/add
Adds billing automations.
Request Body
Section titled “Request Body ”object
Token identifying the client application.
Access token of the client application.
Name and version of the client application.
Unique identifier of the enterprise. Required when using Portfolio Access Tokens, ignored otherwise.
Parameters of the new billing automations to be created.
object
Name of the billing automation.
Description of the billing automation.
List of companies with relations indicating whether the company is considered a travel agency or a company in the reservation. Can only be empty if AssignmentTargetType
is CompanyAsDetails
or NoCompany
.
object
Unique identifier of the company.
Company relations.
object
Indicates whether the billing automation will apply if the company added to a reservation is a partner company.
Indicates whether the billing automation will apply if the company added to a reservation is a travel agency.
Type of prepayment.
All (All)
Prepaid (Prepaid)
Specifies the type of company assignment to the bill. If set to NoCompany
, the BillAggregationType
must be AggregateByCustomer
.
CompanyAsDetails (The company will be the associated account in the resulting routed bill, and the customer is the owner.)
CompanyAsOwner (The company will be the owner in the resulting routed bill, and the customer might be the associated account.)
NoCompany (The customer will be owner of the bill.)
Trigger type of billing automation.
Continuous (Billing automation is continuously triggered by reservation actions, such as creation, updates, and rebates.)
Recurring (Billing automation is executed monthly.)
Legacy (Billing automation is executed on reservation creation only. Items added later are not transfered to any bill.)
Specifies the type of bill aggregation. If the value is not AggregateByCustomer
, the AssignmentTargetType
must be CompanyAsOwner
.
OnePerReservation (Create a separate bill for each reservation.)
AggregateByCustomer (Create a separate bill for each reservation owner.)
AggregateAll (Group all moved items on one bill.)
AggregatePerReservationGroup (Create a separate bill for each reservation group.)
Specifies the order item consumption period type for the billing automation. This is required if the TriggerType
is set to Reccuring
.
MonthBefore (Only items with a consumption date within the previous month will be routed.)
SameMonthAndMonthBefore (Only items with a consumption date within this and the previous month will be routed.)
SameMonth (Only items with a consumption date within this month will be routed.)
SameMonthAndMonthAfter (Only items with a consumption date within this and the next month will be routed.)
MonthAfter (Only items with a consumption date within the next month will be routed.)
Specifies the processing start offset. This is required if the billing automation TriggerType
is set to Reccuring
.
List of billing automation assignments.
object
Unique identifier of the related service.
Type of items that are going to be routed.
object
Space order
City tax
All products
Deposits
Additional expenses
All custom items
Unique identifiers of Rates
that will be applied as billing automation condition.
Unique identifiers of Product Categories
that will be applied as billing automation condition.
Unique identifiers of Products
that will be applied as billing automation condition.
List of accounting categories that will be applied as billing automation condition.
object
Unique identifier of the accounting category.
Type of the accounting category routed item.
object
Specifies whether products under the given accounting category are routed.
Specifies whether custom items under the given accounting category are routed.
Example
{ "ClientToken": "E0D439EE522F44368DC78E1BFB03710C-D24FB11DBE31D4621C4817E028D9E1D", "AccessToken": "C66EF7B239D24632943D115EDE9CB810-EA00F8FD8294692C940F6B5A8F9453D", "Client": "Sample Client 1.0.0", "BillingAutomations": [ { "Name": "Company A billing automation", "Description": "Billing automation routing reservations made for Company A to bills where company is an owner, aggregating all reservations onto one bill.", "CompaniesWithRelations": [ { "CompanyId": "c6f5c82d-621a-4c8a-903b-1b0a9a23b71f", "CompanyRelations": { "PartnerCompany": true, "TravelAgency": false } } ], "Prepayment": "All", "AssignmentTargetType": "CompanyAsOwner", "TriggerType": "Continuous", "BillAggregationType": "AggregateAll", "Assignments": [ { "ServiceId": "bd26d8db-86da-4f96-9efc-e5a4654a4a94", "RoutedItemTypes": { "SpaceOrder": true, "CityTax": true, "AllProducts": false, "Deposits": true, "AdditionalExpenses": true, "AllCustomItems": false }, "ProductIds": [ "507d93e6-9fb5-4734-a6d1-977afc4dfdff" ] } ] } ]}
Responses
Section titled “ Responses ”OK
object
Billing automations affected by the operation.
object
Unique identifier of the billing automation.
Unique identifier of the enterprise.
Name of the billing automation.
Description of the billing automation.
List of companies with relations to the billing automation.
object
Unique identifier of the company.
Company relations.
object
Indicates whether the billing automation will apply if the company added to a reservation is a partner company.
Indicates whether the billing automation will apply if the company added to a reservation is a travel agency.
Type of prepayment.
All (All)
Prepaid (Prepaid)
Type of target company and customer assignment behavior.
CompanyAsDetails (The company will be the associated account in the resulting routed bill, and the customer is the owner.)
CompanyAsOwner (The company will be the owner in the resulting routed bill, and the customer might be the associated account.)
NoCompany (The customer will be owner of the bill.)
Trigger type of billing automation.
Continuous (Billing automation is continuously triggered by reservation actions, such as creation, updates, and rebates.)
Recurring (Billing automation is executed monthly.)
Legacy (Billing automation is executed on reservation creation only. Items added later are not transfered to any bill.)
Type of bill aggregation.
OnePerReservation (Create a separate bill for each reservation.)
AggregateByCustomer (Create a separate bill for each reservation owner.)
AggregateAll (Group all moved items on one bill.)
AggregatePerReservationGroup (Create a separate bill for each reservation group.)
Creation date and time of the billing automation in UTC timezone in ISO 8601 format.
Processing start offset. Applicable only if the billing automation TriggerType
is set to Reccuring
.
Specifies the type of order item consumption period for the billing automation. This value is applicable only when the TriggerType
is set to Reccuring
.
MonthBefore (Only items with a consumption date within the previous month will be routed.)
SameMonthAndMonthBefore (Only items with a consumption date within this and the previous month will be routed.)
SameMonth (Only items with a consumption date within this month will be routed.)
SameMonthAndMonthAfter (Only items with a consumption date within this and the next month will be routed.)
MonthAfter (Only items with a consumption date within the next month will be routed.)
List of billing automation assignments.
object
Unique identifier of the billing automation assignment.
Unique identifier of the billing automation.
Unique identifier of the related service.
Type of items that are going to be routed.
object
Space order
City tax
All products
Deposits
Additional expenses
All custom items
Unique identifiers of Rates
used in billing automation conditions.
Unique identifiers of Product Categories
used in billing automation conditions.
Unique identifiers of Products
used in billing automation conditions.
List of accounting category assignments used in billing automation conditions.
object
Unique identifier of the accounting category.
Type of the accounting category routed item.
object
Specifies whether products under the given accounting category are routed.
Specifies whether custom items under the given accounting category are routed.
Example
{ "BillingAutomations": [ { "Id": "ecd64eec-4423-4c65-b844-814b9199856d", "EnterpriseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "Continuous billing automation for company XYZ", "Description": "Billing Automation for company XYZ with prepayment all, company as owner.", "CompaniesWithRelations": [ { "CompanyId": "c6f5c82d-621a-4c8a-903b-1b0a9a23b71f", "CompanyRelations": { "PartnerCompany": true, "TravelAgency": false } } ], "Prepayment": "All", "AssignmentTargetType": "CompanyAsOwner", "TriggerType": "Continuous", "BillAggregationType": "AggregateAll", "CreatedUtc": "2017-01-31T10:58:06Z", "ProcessingStartOffset": null, "OrderItemConsumptionPeriod": null, "Assignments": [ { "Id": "d6b550e9-9c4b-42dd-9daa-555312b030e6", "BillingAutomationId": "ecd64eec-4423-4c65-b844-814b9199856d", "ServiceId": "bd26d8db-86da-4f96-9efc-e5a4654a4a94", "RoutedItemTypes": { "SpaceOrder": true, "CityTax": true, "AllProducts": true, "Deposits": true, "AdditionalExpenses": false, "AllCustomItems": false }, "RateIds": [ "ab3682ba-4493-4eb0-bcdc-8d000f5bad65" ], "ProductCategoryIds": [ "599c477e-b826-4444-8ded-4fa7276ef0c1" ], "ProductIds": [ "f0184ec2-9f02-4026-9b70-0b2bed2adde7" ], "AccountingCategoryAssignments": [ { "AccountingCategoryId": "2e0f5930-605e-4a23-9994-a7701a56b576", "ItemTypes": { "Products": true, "CustomItems": false } } ] } ] } ]}
Server has successfully fulfilled the request and there is no additional information to send back.
object
Error caused by the client app, e.g. in case of malformed request or invalid identifier of a resource. In most cases, such an error signifies a bug in the client app (consumer of the API).
object
Error caused by usage of invalid ClientToken, AccessToken, or you may not have the necessary permission to use the endpoint.
object
Server error that should be reported to the end user of the client app. Happens for example when the server-side validation fails or when a business-logic check is violated.
object
Error caused by heavy request that takes too long to process (typically tens of seconds). To get around this, request data in smaller batches. For more information, see Request timeouts
object
Error caused by too many requests sent in a given amount of time. Response contains Retry-After
header indicating how long the user agent should wait before making a follow-up request. For more information, see Request limits.
object
Unexpected error on the Mews side. This may be due to a software fault. If such a situation occurs, the error will be logged and the development team notified, however you can raise an issue through GitHub on our documentation repository.