To Upload the expense report details for ingestion. Call this API after all the required attachments are uploaded into the system. You need to specify the external_report_id. For calling the API, you will need the access token.
Request URI
PUT https://api.appzen.com/expense-ingestion/reports/{{external_report_id}}
Header Parameters
Name | Type | Description | Required |
---|---|---|---|
Authorization | String | The valid token to authorize the request. | Yes |
Path Parameters
Name | Type | Description | Required |
---|---|---|---|
external_report_id | String | The External report id. | Yes |
Body Parameters
Name |
Type |
Description |
Required |
reportNumber |
String |
This is the root element to hold the details of a report being ingested. Values should be as a String |
Yes |
amount |
String |
Total amount. |
Yes |
userName |
String |
This field should be populated with 'last name, first name' |
Yes |
userid |
String |
This field needs to be populated with the value of employee id. |
Yes |
emailAddress |
String |
User's email id. |
Yes |
externalOrgId |
String |
This field is required, when new organization needs to be created by AppZen system. |
No |
externalOrgName |
String |
This field is required, when new organization needs to be created by AppZen system. |
No |
external_template_id |
String |
This field is required, when new template needs to be created by AppZen system. Either send template_id and template_name or external_template_id and external_template_name |
No |
external_template_name |
String |
This field is required, when new template needs to be created by AppZen system. |
No |
template_name |
String |
A valid template_name provided by AppZen needs to be passed against this field. |
No |
templateId |
String |
A valid template_id provided by AppZen needs to be passed against this field. In case a valid template_id is not available, it needs to be skipped and valid template details need to be passed instead. AppZen system looks-up for a valid template_id based on the the template details provided. It looks-up for a template defined/configured in the system for given 'external_template_name' or 'external_template_id If no template is found to be defined/configured in the system for given external_template_id/external_template_id, then a new template gets created based on provided template details.In such a scenario, external_template_id and external_template_name are mandatory. |
No |
orgId |
String |
An organization is a way of segregation of expense. For the source system having country and currency based org, only 'country' and 'currency_code' needs to be populated. For the source system having name based org, either of below two combination is required to be populated: 'org_id' : Should be populated with the value provided by AppZen Either send org_id and org_name or external_org_id and external_org_name] |
|
reportLevelImage |
String |
Receipt Image at report level. |
|
reportLevelImageArray |
[String] |
List of images at report level. |
|
country |
String |
User's organization country code in ISO3 format. |
Yes |
countryCode |
String |
User's organization country code in ISO2 format. |
No |
curr |
String |
Organization currency/reimbursement currency ISO3. |
Yes |
date |
String |
Submission date of expense report. Allowed formats: yyyy-MM-dd'T'HH:mm:ss, yyyy-MM-dd'T'HH:mm:ss.SSS, yyyy-MM-dd'T'HH:mm:ss.SSSZ, yyyy-MM-dd hh:mm:ss, yyyy-MM-dd hh:mm:ss.SSS, yyyy-MM-dd hh:mm:ss.SSSZ |
Yes |
desc |
String |
Description of the expense report. |
No |
status |
String |
Status of report in source expense system. workflow status in source system. |
Yes |
elines |
NA |
This is the root element to hold the information on the expense lines. |
Yes |
cardTransactionDetails |
NA |
This is the root element to hold the information on the card through which the transaction was done. |
Yes |
AccountNumber |
String |
Account number associated with the card. |
No |
AccountNumberLastSegment |
String |
Last 4 digits of the card with which the transaction is made. |
No |
CardDescription |
String |
Description of the card. |
No |
CardProgramName |
String |
Card Program Name. |
No |
CardTypeCode |
String |
Type of credit card. Example: 'Personal', 'Corporate'. |
No |
Description |
String |
The card transaction Description. |
No |
ExchangeRateFromBillingToEmployeeCurrency |
String |
Exchange Rate From Billing To Employee Currency. |
No |
MasterCardCode |
String |
Master Card Code. |
No |
MerchantCity |
String |
City to which Merchant belongs. |
No |
MerchantCountryCode |
String |
Country code of Merchant's Country in ISO2 format. |
No |
MerchantReferenceNumber |
String |
Reference number of a Merchant. |
No |
MerchantState |
String |
State to which Merchant belongs. |
No |
PostedAlphaCode |
String |
Posted Alpha Code. |
No |
PostedAmount |
String |
Posted Amount. |
No |
PostedDate |
String |
Posted Date. |
No |
SIC_Code |
String |
SIC Code. |
No |
TaxAmount |
String |
Total Tax amount. |
No |
TransactionAlphaCode |
String |
Transaction Alpha Code. |
No |
TransactionAmount |
String |
The amount paid in the transaction. |
No |
TransactionCCTType |
String |
Transaction CCT Type. |
No |
TransactionDate |
String |
The date of the transaction. |
No |
TransactionID |
String |
Unique id for the transaction. |
No |
TransactionMerchantName |
String |
The merchant name for which the transaction is made. |
No |
TransactionReferenceNumber |
String |
The reference number of the transaction made by the credit card. |
No |
merchantId |
Integer |
The unique id of the merchant. |
No |
comments |
String |
The line-level comments entered by the user. |
No |
elExternalLineId |
String |
The unique number is attached to each expense line. |
No |
elImageDetails |
Array |
Extension of all line-level attachment files. Example: For image1.jpeg - jpeg is added to this array. |
No |
imageId |
String |
AppZen generated id for the image. |
No |
imageType |
String |
The following types are supported: PDF, JPEG, JPG, PNG and TIFF are supported by default for all the customers. |
No |
elItemizedFlag |
String |
Set it as true, if the current line is a child line/itemized line "false": If the flag is NOT to be set, "true": If the flag is to be set. |
Yes |
elItemizedLineNumber |
String |
The line number for the child/itemized line. |
No |
elParentLineNumber |
String |
The elineid of the parent line if the current line id is the child line. |
No |
elallocs |
|
This is the root that holds the information on expense line allocation. Use custom1 — custom25 for your details. Note: Cost center details should be populated against the field 'custom3'. |
No |
amount |
String |
This is the root for holding the amount details. |
No |
elcostcenter |
String |
This is the root for holding the cost center details - fieldName, text, value. Custom3 field |
No |
elamount |
String |
Total Reimbursement amount. |
Yes |
elattendees |
NA |
This is the root element to hold details of the attendees of an expense line. |
Yes |
amountByAttendee |
String |
Amount per attendee. |
No |
attendeeCount |
Integer |
Total count of the attendees. |
No |
attendeeType |
String |
Type of attendee. |
No |
elExternalAttendeeId |
String |
External Attendee ID. |
No |
elineId |
String |
unique sequence for that expense line. |
No |
employeeFlag |
String |
Checks if the attendee is an employee. |
No |
employeeId |
string |
ID if the employee. |
No |
employer |
String |
Name of the employer. |
No |
employerAddr |
String |
Address of the Employer. |
No |
name |
String |
Name of the attendee. |
No |
orgId |
String |
Organization Id. |
No |
taxId |
String |
Tax Id. |
No |
title |
String |
Title of the Employee. |
No |
elconvrate |
String |
Conversion rate from the transaction- currency to reimbursement currency. |
No |
elcurr |
String |
Reimbursement currency. |
Yes |
eldate |
String |
The date when the expense was made. Allowed formats: yyyy-MM-dd'T'HH:mm:ss, yyyy-MM-dd'T'HH:mm:ss.SSS, yyyy-MM-dd'T'HH:mm:ss.SSSZ, yyyy-MM-dd hh:mm:ss, yyyy-MM-dd hh:mm:ss.SSS, yyyy-MM-dd hh:mm:ss.SSSZ |
Yes |
elineid |
String |
The 1 based index for expense lines. Unique sequence for that expense line. |
Yes |
elineinfo |
String |
Expense line information. |
No |
elinetype |
String |
Payment type. e.g. CASH, CREDIT etc |
Yes |
elmileagedist |
String |
Expense line mileage distance. |
No |
elmileagerate |
String |
Expense line mileage rate. |
No |
elmileageuom |
String |
Expense line mileage unit of measure. |
No |
elpaidamount |
String |
The total amount in transaction currency i.e. the amount in currency paid to the vendor. |
Yes |
elpaidcurr |
String |
Transaction currency. |
Yes |
elpersonalflag |
String |
Y if the expense is personal "N": If the flag is NOT to be set, "Y": If the flag is to be set. |
Yes |
elpurpose |
String |
Justification for this expense line. |
Yes |
eltype |
String |
Expense type. e.g. Meals, Taxi, Hotel etc. |
No |
elvatflag |
String |
This is True if the expense is VAT line "false": If the flag is NOT to be set, "true": If the flag is to be set. |
Yes |
missingReceipt |
String |
is N if the receipt is attached "N": If the flag is NOT to be set, "Y": If the flag is to be set. |
Yes |
report_level_image_details_array |
NA |
This is the root element to hold Extension of all header level attachment files. Example: for image1.jpeg, jpeg should be added to this array. |
|
imageId |
String |
The Receipt Image ID. |
No |
imageType |
String |
The image type. Types Supported are: JPEG. JPG, PNG and PDF. For other types, additional work will be required and have to do a feasibility check on supporting that file type. |
No |
custom1 — custom25 |
String |
Values of custom field |
No |
Addendum |
Binary |
True - if it is a modification in an existing report, False - otherwise |
No |
Sample Request
curl -L -X PUT 'https: //api.appzen.com/expense-ingestion/reports/TestAPIReport' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer eyJrxxxx' \
-H 'Cookie: JSESSIONID=B663D6B89CB2D7A4BE1A91D80A2D0599' \
--data-raw '{
"expense_report": {
"date": "2022-12-26T01:06:27",
"country": "US",
"amount": "1200.0",
"report_name": "TestAPIReport",
"last_updated_at": "2020-12-26T01:23:57.014Z",
"elines": [
{
"el_type": "Hotel Room Charges 001 New",
"el_curr": "USD",
"missing_receipt": "N",
"expense_line_iId": 1,
"elItemizedFlag": "false",
"eldetails": [],
"elamount": "1200.00",
"elpaidamount": "1200.00",
"elpurpose": "Expense Link Description",
"eldate": "2020-12-01T14:23:57.014",
"eline_id": "1",
"elpaidcurr": "USD",
"elconvrate": "0.145507246376813",
"elinetype": "CREDIT",
"elpersonalflag": "N",
"elcostcenter": "605",
"elvatflag": "false",
"elimageid": [
"f06657f4-9edf-4429-88cf-f3e918c8dd43"
]
}
],
"external_template_id": "external_template_name_trial_44",
"template_id": "20016792",
"userName": "API Doc Test",
"userid": "Apidoctest@appzen.com",
"createdAt": "2022-12-26T14:06:27",
"emailAddress": "Apidoctest@appzen.com",
"countryCode": "US",
"customerId": "100439",
"curr": "USD",
"desc": "Test Report Ingested via API Auto",
"status": "AppZen-Review"
}
}
Sample Response
Success
{
"Status": "Success",
"msg": "Successfully processed submitted report"
}
Failure
The request fails if you enter an invalid customer id.
{
"Status": "Failure",
"msg": "Following fields are mandatory: matching customerId."
}
Response Code
Response Code | Description |
200 | The request is successful. |
500 | The request failed. |
See Also
Comments
Article is closed for comments.