BokaMera.API.Host

<back to all web services

EAccountingCustomerQuery

The following routes are available for this service:
GET/eaccounting/customers
import Foundation
import ServiceStack

public class EAccountingCustomerQuery : QueryData<EAccountingCustomerQueryResponse>, ICompany
{
    public var companyId:String?

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case companyId
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        companyId = try container.decodeIfPresent(String.self, forKey: .companyId)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if companyId != nil { try container.encode(companyId, forKey: .companyId) }
    }
}

public class EAccountingCustomerQueryResponse : Codable
{
    public var id:String
    public var customerNumber:String
    public var corporateIdentityNumber:String
    public var contactPersonEmail:String
    public var contactPersonMobile:String
    public var contactPersonName:String
    public var contactPersonPhone:String
    public var currencyCode:String
    public var gln:String
    public var invoiceCity:String
    public var invoicePostalCode:String
    public var emailAddress:String
    public var emailAddressOrder:String
    public var emailAddressQuote:String
    public var invoiceAddress:EAccountingInvoiceAddress
    public var deliveryCustomerName:String
    public var deliveryAddress1:String
    public var deliveryAddress2:String
    public var deliveryCity:String
    public var deliveryCountryCode:String
    public var deliveryPostalCode:String
    public var deliveryMethodId:String
    public var deliveryTermId:String
    public var payToAccountId:String
    public var name:String
    public var note:String
    public var reverseChargeOnConstructionServices:Bool
    public var webshopCustomerNumber:Int?
    public var mobilePhone:String
    public var telephone:String
    public var termsOfPaymentId:String
    public var eAccountingTermsOfPayment:EAccountingTermsOfPaymentQueryResponse
    public var vatNumber:String
    public var wwwAddress:String
    public var lastInvoiceDate:String
    public var isPrivatePerson:Bool
    public var isNorthernIreland:Bool
    public var discountPercentage:Double?
    public var changedUtc:Date?
    public var isActive:Bool
    public var forceBookkeepVat:Bool
    public var ediGlnNumber:String
    public var salesDocumentLanguage:String
    public var electronicAddress:String
    public var electronicReference:String
    public var ediServiceDelivererId:String
    public var autoInvoiceActivationEmailSentDate:Date?
    public var autoInvoiceRegistrationRequestSentDate:Date?
    public var emailAddresses:[String] = []
    public var customerLabels:[CustomerLabelQueryResponse] = []
    public var messageThreads:[String] = []
    public var notes:[String] = []
    public var isFutureInvoiceDateAllowed:Bool
    public var deliveryBasedVat:Bool
    public var salesPriceListId:String
    public var iban:String
    public var directDebitCustomerSettings:DirectDebitCustomerSettingsQueryResponse
    public var discountAgreementId:String
    public var unpaidInvoicesAmount:Double

    required public init(){}
}

public class EAccountingInvoiceAddress : Codable
{
    public var corporateIdentityNumber:String
    public var invoiceAddress1:String
    public var invoiceAddress2:String
    public var invoiceCity:String
    public var invoicePostalCode:String
    public var invoiceCountryCode:String

    required public init(){}
}

public class EAccountingTermsOfPaymentQueryResponse : Codable
{
    public var id:String
    public var name:String
    public var nameEnglish:String
    public var numberOfDays:Int
    public var termsOfPaymentTypeId:Int
    public var termsOfPaymentTypeText:String
    public var availableForSales:Bool
    public var availableForPurchase:Bool

    required public init(){}
}

public class CustomerLabelQueryResponse : Codable
{
    public var id:String
    public var name:String
    public var Description:String

    required public init(){}
}

public class DirectDebitCustomerSettingsQueryResponse : Codable
{
    public var mandateId:String
    public var mandateType:Int
    public var sequenceType:Int
    public var signingDate:Date
    public var endDate:Date
    public var latestDirectDebit:Date

    required public init(){}
}

public class AccessKeyTypeResponse : Codable
{
    public var id:Int
    public var keyType:String
    public var Description:String

    required public init(){}
}


Swift EAccountingCustomerQuery 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/customers HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Offset: 0,
	Total: 0,
	Results: 
	[
		{
			Id: String,
			CustomerNumber: String,
			CorporateIdentityNumber: String,
			ContactPersonEmail: String,
			ContactPersonMobile: String,
			ContactPersonName: String,
			ContactPersonPhone: String,
			CurrencyCode: String,
			GLN: String,
			InvoiceCity: String,
			InvoicePostalCode: String,
			EmailAddress: String,
			EmailAddressOrder: String,
			EmailAddressQuote: String,
			InvoiceAddress: 
			{
				CorporateIdentityNumber: String,
				InvoiceAddress1: String,
				InvoiceAddress2: String,
				InvoiceCity: String,
				InvoicePostalCode: String,
				InvoiceCountryCode: String
			},
			DeliveryCustomerName: String,
			DeliveryAddress1: String,
			DeliveryAddress2: String,
			DeliveryCity: String,
			DeliveryCountryCode: String,
			DeliveryPostalCode: String,
			DeliveryMethodId: String,
			DeliveryTermId: String,
			PayToAccountId: String,
			Name: String,
			Note: String,
			ReverseChargeOnConstructionServices: False,
			WebshopCustomerNumber: 0,
			MobilePhone: String,
			Telephone: String,
			TermsOfPaymentId: String,
			EAccountingTermsOfPayment: 
			{
				Id: String,
				Name: String,
				NameEnglish: String,
				NumberOfDays: 0,
				TermsOfPaymentTypeId: 0,
				TermsOfPaymentTypeText: String,
				AvailableForSales: False,
				AvailableForPurchase: False
			},
			VatNumber: String,
			WwwAddress: String,
			LastInvoiceDate: String,
			IsPrivatePerson: False,
			IsNorthernIreland: False,
			DiscountPercentage: 0,
			ChangedUtc: "0001-01-01T00:00:00",
			IsActive: False,
			ForceBookkeepVat: False,
			EdiGlnNumber: String,
			SalesDocumentLanguage: String,
			ElectronicAddress: String,
			ElectronicReference: String,
			EdiServiceDelivererId: String,
			AutoInvoiceActivationEmailSentDate: "0001-01-01T00:00:00",
			AutoInvoiceRegistrationRequestSentDate: "0001-01-01T00:00:00",
			EmailAddresses: 
			[
				String
			],
			CustomerLabels: 
			[
				{
					Id: String,
					Name: String,
					Description: String
				}
			],
			MessageThreads: 
			[
				String
			],
			Notes: 
			[
				String
			],
			IsFutureInvoiceDateAllowed: False,
			DeliveryBasedVat: False,
			SalesPriceListId: String,
			Iban: String,
			DirectDebitCustomerSettings: 
			{
				MandateId: String,
				MandateType: 0,
				SequenceType: 0
			},
			DiscountAgreementId: String,
			UnpaidInvoicesAmount: 0
		}
	],
	Meta: 
	{
		String: String
	},
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}