BokaMera.API.Host

<back to all web services

EaccountingInvoiceQuery

The following routes are available for this service:
GET/eaccounting/invoices
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


open class EaccountingInvoiceQuery : QueryData<InvoiceQueryResponse>(), ICompany
{
    open var BookingId:Int? = null
    open var Paid:Boolean? = null
    open var IncludeInvoiceLines:Boolean? = null
    open var IncludeInvoiceNotes:Boolean? = null
    open var IncludePaymentTermData:Boolean? = null
    open var IncludeInvoiceAddress:Boolean? = null
    override var CompanyId:UUID? = null
}

open class QueryData<T> : QueryBase()
{
}

@DataContract
open class QueryBase
{
    @DataMember(Order=1)
    open var Skip:Int? = null

    @DataMember(Order=2)
    open var Take:Int? = null

    @DataMember(Order=3)
    open var OrderBy:String? = null

    @DataMember(Order=4)
    open var OrderByDesc:String? = null

    @DataMember(Order=5)
    open var Include:String? = null

    @DataMember(Order=6)
    open var Fields:String? = null

    @DataMember(Order=7)
    open var Meta:HashMap<String,String>? = null
}

open class InvoiceQueryResponse
{
    open var InvoiceId:UUID? = null
    open var CreatedDate:Date? = null
    open var TotalAmount:BigDecimal? = null
    open var TotalVatAmount:BigDecimal? = null
    open var CustomerId:String? = null
    open var Rows:ArrayList<InvoiceLineQueryResponse> = ArrayList<InvoiceLineQueryResponse>()
    open var VatSpecification:ArrayList<VatSpecificationQueryResponse> = ArrayList<VatSpecificationQueryResponse>()
    open var InvoiceDate:String? = null
    open var DueDate:String? = null
    open var DeliveryDate:Date? = null
    open var Persons:ArrayList<Person> = ArrayList<Person>()
    open var InvoiceCustomerName:String? = null
    open var InvoiceAddress:EAccountingInvoiceAddress? = null
    open var CustomerIsPrivatePerson:Boolean? = null
    open var TermsOfPaymentId:String? = null
    open var TermsOfPaymentData:EAccountingTermsOfPaymentQueryResponse? = null
    open var CustomerEmail:String? = null
    open var InvoiceNumber:Int? = null
    open var CustomerNumber:String? = null
    open var Notes:ArrayList<NoteQueryResponse> = ArrayList<NoteQueryResponse>()
    open var NoteIds:ArrayList<String> = ArrayList<String>()
    open var CreatedUtc:Date? = null
    open var ModifiedUtc:Date? = null
    open var IncludesVat:Boolean? = null
    open var SendType:EAccountingInvoiceSendTypes? = null
    open var IsSold:Boolean? = null
    open var PaymentDate:Date? = null
    open var PaymentStatus:PaymentStatus? = null
    open var PaymentStatusTitle:String? = null
    open var CreditedBy:ArrayList<CreditedBy> = ArrayList<CreditedBy>()
    open var PriceSign:String? = null
    open var BookingId:String? = null
}

open class InvoiceLineQueryResponse
{
    open var ArticleNumber:String? = null
    open var ArticleId:String? = null
    open var IsServiceArticle:Boolean? = null
    open var AmountNoVat:BigDecimal? = null
    open var PercentVat:BigDecimal? = null
    open var LineNumber:Int? = null
    open var IsTextRow:Boolean? = null
    open var Text:String? = null
    open var UnitPrice:BigDecimal? = null
    open var UnitAbbreviation:String? = null
    open var UnitAbbreviationEnglish:String? = null
    open var DiscountPercentage:BigDecimal? = null
    open var Quantity:Float? = null
    open var IsWorkCost:Boolean? = null
    open var IsVatFree:Boolean? = null
    open var CostCenterItemId1:String? = null
    open var CostCenterItemId2:String? = null
    open var CostCenterItemId3:String? = null
    open var UnitId:String? = null
    open var ProjectId:String? = null
    open var WorkCostType:Int? = null
    open var WorkHours:Float? = null
    open var MaterialCosts:BigDecimal? = null
    open var GreenTechnologyType:GreenTechnologyType? = null
    open var ContributionMargin:ContributionMargin? = null
}

enum class GreenTechnologyType
{
    None,
    SolarCellInstallation,
    ElectricEnergyStorageInstallation,
    ElectricVehicleChargingPointInstallation,
}

open class ContributionMargin
{
    open var Amount:Int? = null
    open var Percentage:Int? = null
}

open class VatSpecificationQueryResponse
{
    open var AmountInvoiceCurrency:BigDecimal? = null
    open var VatAmountInvoiceCurrency:BigDecimal? = null
    open var VatPercent:BigDecimal? = null
}

open class Person
{
    open var Ssn:String? = null
    open var Amount:Int? = null
}

open class EAccountingInvoiceAddress
{
    open var CorporateIdentityNumber:String? = null
    open var InvoiceAddress1:String? = null
    open var InvoiceAddress2:String? = null
    open var InvoiceCity:String? = null
    open var InvoicePostalCode:String? = null
    open var InvoiceCountryCode:String? = null
}

open class EAccountingTermsOfPaymentQueryResponse
{
    open var Id:String? = null
    open var Name:String? = null
    open var NameEnglish:String? = null
    open var NumberOfDays:Int? = null
    open var TermsOfPaymentTypeId:Int? = null
    open var TermsOfPaymentTypeText:String? = null
    open var AvailableForSales:Boolean? = null
    open var AvailableForPurchase:Boolean? = null
}

open class NoteQueryResponse
{
    open var Id:String? = null
    open var Text:String? = null
    open var CreatedUtc:Date? = null
    open var ModifiedUtc:Date? = null
}

enum class EAccountingInvoiceSendTypes
{
    None,
    AutoInvoiceElectronic,
    AutoInvoicePrint,
    AutoInvoiceB2C,
}

enum class PaymentStatus
{
    Paid,
    Unpaid,
    Overdue,
}

open class CreditedBy
{
    open var CreditInvoiceId:String? = null
}

@DataContract
open class QueryResponse<T>
{
    @DataMember(Order=1)
    open var Offset:Int? = null

    @DataMember(Order=2)
    open var Total:Int? = null

    @DataMember(Order=3)
    open var Results:ArrayList<AccessKeyTypeResponse> = ArrayList<AccessKeyTypeResponse>()

    @DataMember(Order=4)
    open var Meta:HashMap<String,String>? = null

    @DataMember(Order=5)
    open var ResponseStatus:ResponseStatus? = null
}

open class AccessKeyTypeResponse
{
    open var Id:Int? = null
    open var KeyType:String? = null
    open var Description:String? = null
}

Kotlin EaccountingInvoiceQuery 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.

GET /eaccounting/invoices HTTP/1.1 
Host: api.bookmore.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Offset: 0,
	Total: 0,
	Results: 
	[
		{
			TotalAmount: 0,
			TotalVatAmount: 0,
			CustomerId: String,
			Rows: 
			[
				{
					ArticleNumber: String,
					ArticleId: String,
					IsServiceArticle: False,
					AmountNoVat: 0,
					PercentVat: 0,
					LineNumber: 0,
					IsTextRow: False,
					Text: String,
					UnitPrice: 0,
					UnitAbbreviation: String,
					UnitAbbreviationEnglish: String,
					DiscountPercentage: 0,
					Quantity: 0,
					IsWorkCost: False,
					IsVatFree: False,
					CostCenterItemId1: String,
					CostCenterItemId2: String,
					CostCenterItemId3: String,
					UnitId: String,
					ProjectId: String,
					WorkCostType: 0,
					WorkHours: 0,
					MaterialCosts: 0,
					GreenTechnologyType: None,
					ContributionMargin: 
					{
						Amount: 0,
						Percentage: 0
					}
				}
			],
			VatSpecification: 
			[
				{
					AmountInvoiceCurrency: 0,
					VatAmountInvoiceCurrency: 0,
					VatPercent: 0
				}
			],
			InvoiceDate: String,
			DueDate: String,
			DeliveryDate: "0001-01-01T00:00:00",
			Persons: 
			[
				{
					Ssn: String,
					Amount: 0
				}
			],
			InvoiceCustomerName: String,
			InvoiceAddress: 
			{
				CorporateIdentityNumber: String,
				InvoiceAddress1: String,
				InvoiceAddress2: String,
				InvoiceCity: String,
				InvoicePostalCode: String,
				InvoiceCountryCode: String
			},
			CustomerIsPrivatePerson: False,
			TermsOfPaymentId: String,
			TermsOfPaymentData: 
			{
				Id: String,
				Name: String,
				NameEnglish: String,
				NumberOfDays: 0,
				TermsOfPaymentTypeId: 0,
				TermsOfPaymentTypeText: String,
				AvailableForSales: False,
				AvailableForPurchase: False
			},
			CustomerEmail: String,
			InvoiceNumber: 0,
			CustomerNumber: String,
			Notes: 
			[
				{
					Id: String,
					Text: String
				}
			],
			NoteIds: 
			[
				String
			],
			IncludesVat: False,
			SendType: None,
			IsSold: False,
			PaymentDate: "0001-01-01T00:00:00",
			PaymentStatus: Paid,
			PaymentStatusTitle: String,
			CreditedBy: 
			[
				{
					CreditInvoiceId: String
				}
			],
			PriceSign: String,
			BookingId: String
		}
	],
	Meta: 
	{
		String: String
	},
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}