BokaMera.API.Host

<back to all web services

CreateSummarizedInvoice

Requires Authentication
The following routes are available for this service:
POST/eaccounting/summarizedinvoiceCreate summarized invoices for customer bookings in a date rangeCreates a single invoice per customer covering all their bookings in the specified date range. Processing is async via queue.
Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports BokaMera.API.ServiceModel.Dtos
Imports BokaMera.API.ServiceModel.Enums

Namespace Global

    Namespace BokaMera.API.ServiceModel.Dtos

        <ApiResponse(Description:="You were unauthorized to call this service", StatusCode:=401)>
        <ValidateRequest(Validator:="IsAuthenticated")>
        Public Partial Class CreateSummarizedInvoice
            Implements ICompany
            '''<Summary>
            '''The company id, if empty will use the company id for the user you are logged in with.
            '''</Summary>
            <ApiMember(Description:="The company id, if empty will use the company id for the user you are logged in with.")>
            Public Overridable Property CompanyId As Guid? Implements ICompany.CompanyId

            '''<Summary>
            '''Start date for the booking range to include.
            '''</Summary>
            <ApiMember(Description:="Start date for the booking range to include.", IsRequired:=true)>
            Public Overridable Property DateFrom As Date

            '''<Summary>
            '''End date for the booking range to include.
            '''</Summary>
            <ApiMember(Description:="End date for the booking range to include.", IsRequired:=true)>
            Public Overridable Property DateTo As Date

            '''<Summary>
            '''Optional customer id. If null, creates one summarized invoice per customer with eligible bookings.
            '''</Summary>
            <ApiMember(Description:="Optional customer id. If null, creates one summarized invoice per customer with eligible bookings.")>
            Public Overridable Property CustomerId As Guid?

            '''<Summary>
            '''Optional service/event id filter. Only include bookings for this service.
            '''</Summary>
            <ApiMember(Description:="Optional service/event id filter. Only include bookings for this service.")>
            Public Overridable Property ServiceId As Integer?

            '''<Summary>
            '''Optional list of booking status ids to include. If empty, all statuses are included.
            '''</Summary>
            <ApiMember(Description:="Optional list of booking status ids to include. If empty, all statuses are included.")>
            Public Overridable Property BookingStatusIds As List(Of Integer)

            '''<Summary>
            '''The terms of payment id from EAccounting.
            '''</Summary>
            <ApiMember(Description:="The terms of payment id from EAccounting.", IsRequired:=true)>
            Public Overridable Property TermsOfPaymentId As String

            '''<Summary>
            '''Invoice creation type: 'Draft' or 'Invoice'. Defaults to company's EAccounting DefaultCreateType.
            '''</Summary>
            <ApiMember(Description:="Invoice creation type: 'Draft' or 'Invoice'. Defaults to company's EAccounting DefaultCreateType.")>
            Public Overridable Property CreateType As String

            '''<Summary>
            '''Send type for final invoices. 0 = None, 1 = AutoInvoiceElectronic, 2 = AutoInvoicePrint, 3 = AutoInvoiceB2C.
            '''</Summary>
            <ApiMember(Description:="Send type for final invoices. 0 = None, 1 = AutoInvoiceElectronic, 2 = AutoInvoicePrint, 3 = AutoInvoiceB2C.")>
            Public Overridable Property SendType As EAccountingInvoiceSendTypes?

            '''<Summary>
            '''Override corporate identity number for invoice address.
            '''</Summary>
            <ApiMember(Description:="Override corporate identity number for invoice address.")>
            Public Overridable Property CorporateIdentityNumber As String

            '''<Summary>
            '''Override invoice address line 1.
            '''</Summary>
            <ApiMember(Description:="Override invoice address line 1.")>
            Public Overridable Property InvoiceAddress1 As String

            '''<Summary>
            '''Override invoice address line 2.
            '''</Summary>
            <ApiMember(Description:="Override invoice address line 2.")>
            Public Overridable Property InvoiceAddress2 As String

            '''<Summary>
            '''Override invoice city.
            '''</Summary>
            <ApiMember(Description:="Override invoice city.")>
            Public Overridable Property InvoiceCity As String

            '''<Summary>
            '''Override invoice postal code.
            '''</Summary>
            <ApiMember(Description:="Override invoice postal code.")>
            Public Overridable Property InvoicePostalCode As String

            '''<Summary>
            '''Override invoice country code.
            '''</Summary>
            <ApiMember(Description:="Override invoice country code.")>
            Public Overridable Property InvoiceCountryCode As String
        End Class

        Public Partial Class CreateSummarizedInvoiceResponse
            Public Overridable Property TotalCustomersQueued As Integer
            Public Overridable Property Jobs As List(Of SummarizedInvoiceJobResponse) = New List(Of SummarizedInvoiceJobResponse)
            Public Overridable Property ResponseStatus As ResponseStatus
        End Class

        Public Partial Class SummarizedInvoiceJobResponse
            Public Overridable Property SummarizedInvoiceId As Guid
            Public Overridable Property CustomerId As Guid
            Public Overridable Property CustomerName As String
            Public Overridable Property BookingCount As Integer
        End Class
    End Namespace
End Namespace

VB.NET CreateSummarizedInvoice DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /eaccounting/summarizedinvoice HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	CustomerId: 00000000-0000-0000-0000-000000000000,
	ServiceId: 0,
	BookingStatusIds: 
	[
		0
	],
	TermsOfPaymentId: String,
	CreateType: String,
	SendType: None,
	CorporateIdentityNumber: String,
	InvoiceAddress1: String,
	InvoiceAddress2: String,
	InvoiceCity: String,
	InvoicePostalCode: String,
	InvoiceCountryCode: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	TotalCustomersQueued: 0,
	Jobs: 
	[
		{
			CustomerName: String,
			BookingCount: 0
		}
	],
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}