Uploads an attachment.
Parameter | Mandatory | Description | Examples | More Info |
---|---|---|---|---|
API | Yes | The API area | expenselines.json | |
General | Yes | Parameters described in overview | user=user&password=user | Structure of an API call |
Company | Yes | The company number | company=1 | |
Action | Yes | The action to perform | action=update | |
Identifier | Yes | Expense line UUID | uuid=1234 | |
Input | Yes | JSON string | See below |
JSON Input | Mandatory | Description | Examples |
---|---|---|---|
Base64 | Yes | Base64 string | "variable_AttachmentBase64":"SEVSRSBJUyBTT01FIFRFWFQNCg==" |
AttachmentFileName | Yes | File name | "variable_AttachmentFileName":"Receipt.jpg" |
Identifier | Yes | Expense line ID | "expenselines_expenselineinternal":"3398" |
Only one identifier needs to be passed, either the UUID in the URL or the Internal ID in the JSON string.
Before calling this endpoint you should first ascertain if the Synergist system being accessed is using Amazon S3 to attachment storage. This can be determined by using the System API. If S3 is being used it is not necessary to pass the Base64 string. In this case the response will include the data required to perform a PUT using Amazon's API.
Example request:
http://<SERVER>/jsonapi/expenselines.json?user=user&password=user&version=3.9&action=update&input={
"data": [
{
"variable_AttachmentBase64": "77u/dGV4dA==",
"variable_AttachmentFileName": "text.txt",
"expenselines_expenselineinternal": "4022"
}
]
}
Example response:
AMAZON S3
{
"responsecode": 1,
"responsestatus": "OK",
"errorcode": 0,
"errormessage": "",
"responsemessage": "data processed successfully.",
"warningmessage": "",
"success": true,
"synapiversion": 3.8,
"data": [
{
"attachmentS3UrlGet": "https://syn-test.s3-eu-west-1.amazonaws.com/text_7138.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4ZGRNZLLUTWA6XH2/20201116/eu-west-1/s3/aws4_request&X-Amz-Date=20201116T151443Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=b1aad3678254a6ef7ce7ee937d637d775c01521e80fbad767d3df898294e2d27",
"attachmentS3UrlPut": "https://syn-test.s3-eu-west-1.amazonaws.com/text_7138.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4ZGRNZLLUTWA6XH2/20201116/eu-west-1/s3/aws4_request&X-Amz-Date=20201116T151443Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=8c2d678fb3149097d6ab46162a339bb0878cbfa8895c2a0e6576824b74023d43",
"expenselineInternal": 4022,
"expenselineUuid": "65B30EF127A88149A515AF4DB1931532",
"expenselineTimestampModified": 1605539275,
"expenselineRecordVersionNumber": 1
}
]
}
NON-S3
{
"responsecode": 1,
"responsestatus": "OK",
"errorcode": 0,
"errormessage": "",
"responsemessage": "data processed successfully.",
"warningmessage": "",
"success": true,
"data": [
{
"expenselineInternal": 4022,
"expenselineUuid": "65B30EF127A88149A515AF4DB1931532",
"expenselineTimestampModified": 1605539275,
"expenselineRecordVersionNumber": 1
}
]
}