This is a documentation of Annytab Dox Travel Expense Claim v1
, our own royalty-free standard for a travel expense claim that can be used by employees to receive compensation from their employer for expenses on a business trip.
This standard is based on JSON, a compact and text-based format that is used to exchange data. It’s easy to serialize objects to JSON and it’s easy to deserialize JSON to objects. This standard is available in a NuGet package: a-dox-standards (NuGet Gallery).
AnnytabDoxTravelExpenseClaim [Model]
Property
Type
Description
personnel_id
string
The employment number of the person that makes the claim.
name
string
The name of the person that makes the claim.
cost_center
string
A code for the division, department or activity to which the person belongs. Used to allocate the expenses to the unit that should bear the expense.
currency_code
string
A 3-letter code according to ISO 4217 which specifies the currency applicable to the amounts in the document.
trip_purpose
string
The purpose of the trip, what the journey means for the company.
destination
string
The destination of the trip. For example: a region, a city or an address.
departure_date
string
Date and time when the trip began. Must be entered as yyyy-MM-ddThh:mm:ss (2017-09-31T08:00:54).
return_date
string
Date and time when the trip ended. Must be entered as yyyy-MM-ddThh:mm:ss (2017-09-31T08:00:54).
expense_rows
IList<TravelExpenseRow>
A list of expenses, see the description of TravelExpenseRow below.
TravelExpenseRow [Model]
Property
Type
Description
code
string
An expense type code. Used to facilitate connections in programs that import this document.
description
string
A description of the expense. For example: Accommodation, Taxi or Parking.
quantity
decimal
The quantity of the expenditure. The number of units regarding the type of expenditure.
unit_code
string
A unit code regarding the specified quantity.
unit_price
decimal
The price of one unit of the expense type including VAT, expressed in the stated currency for the travel expense claim.
vat_amount
decimal
Deductible inbound VAT for the expense, expressed in the stated currency for the travel expense claim..
comment
string
A comment about the expense. Regarding representation for example, you can indicate who participated and the purpose of the representation.
Codes
Code
Description
ADT1000
External representation, food
ADT1001
Travel ticket
ADT1002
Gifts, not representation
ADT1003
Rental car
ADT1004
Internal representation, food
ADT1005
Admission ticket
ADT1006
Deduction breakfast, domestic
ADT1007
Deduction breakfast, abroad
ADT1008
Deduction lunch, domestic
ADT1009
Deduction lunch, abroad
ADT1010
Deduction dinner, domestic
ADT1011
Deduction dinner, abroad
ADT1012
Taxable benefit of breakfast
ADT1013
Taxable benefit of lunch
ADT1014
Taxable benefit of dinner
ADT1015
Accommodation
ADT1016
Private car fuel, tax free
ADT1017
Private car fuel, taxable
ADT1018
Benefit car fuel, tax-free
ADT1019
Benefit car fuel, taxable
ADT1020
Meal, not representation
ADT1021
Night allowance domestic, tax-free
ADT1022
Night allowance domestic, taxable
ADT1023
Night allowance abroad, tax-free
ADT1024
Night allowance abroad, taxable
ADT1025
Parking
ADT1026
Representation gifts
ADT1027
Taxi
ADT1028
Allowance domestic, tax-free
ADT1029
Allowance domestic, taxable
ADT1030
Allowance abroad, tax-free
ADT1031
Allowance abroad, taxable
ADT1032
Other expenses for representation
ADT1033
Other
JSON Example
{
"personnel_id": "001",
"name": "Nils Nilsson",
"cost_center": "Marketing",
"currency_code": "SEK",
"trip_purpose": "Meeting with our largest customer",
"destination": "Stockholm",
"departure_date": "2018-08-01T08:00:00",
"return_date": "2018-08-02T16:00:00",
"expense_rows": [
{
"code": "ADT1016",
"description": "Private car fuel, tax free",
"quantity": 200,
"unit_code": "km",
"unit_price": 1.85
},
{
"code": "ADT1015",
"description": "Accomodation",
"quantity": 1,
"unit_code": "day",
"unit_price": 1495,
"vat_amount": 200,
"comment": "Just a comment."
}
]
}
Code Example
// Create a travel expense claim
AnnytabDoxTravelExpenseClaim post = new AnnytabDoxTravelExpenseClaim();
post.personnel_id = "001";
post.name = "Nils Nilsson";
post.cost_center = "Marketing";
post.currency_code = "SEK";
post.trip_purpose = "Meeting with our largest customer";
post.destination = "Stockholm";
post.departure_date = "2018-08-01T08:00:00";
post.return_date = "2018-08-02T16:00:00";
// Add expense rows
post.expense_rows = new List<TravelExpenseRow>();
post.expense_rows.Add(new TravelExpenseRow
{
code = "ADT1016",
description = "Private car fuel, tax free",
quantity = 200,
unit_code = "km",
unit_price = 1.85M
});
post.expense_rows.Add(new TravelExpenseRow
{
code = "ADT1015",
description = "Accomodation",
quantity = 1,
unit_code = "day",
unit_price = 1495M
});
// Convert the object to a byte array
string json = JsonConvert.SerializeObject(post, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
byte[] array = Encoding.UTF8.GetBytes(json);
// Write to the stream
stream.Write(array, 0, array.Length);