Generate Upload URL

Prev Next
Post
/public/v1/accounting/accounts-payable/attachments/upload-url

Step 1 of 3. Returns a pre-signed Amazon S3 URL that accepts exactly one file — the size and MIME type declared in this request — together with the generated storage file name needed in step 3. The URL expires 5 minutes after it is issued and should be treated as a secret.

Security

The requesting user must have all of the following permissions:

  • Accounts Payable → AP Invoices → Edit AP Invoices
  • Accounts Payable → AP Credit Memos → Edit AP Credit Memos
  • Accounts Payable → AP Payments → Edit AP Payments

Attaching a file to an existing AP transaction takes three calls. Only the first and third are Restaurant365 endpoints; the second is a direct upload to Amazon S3 using a URL the first call returns.

  1. Generate Upload URL — POST /public/v1/accounting/accounts-payable/attachments/upload-url

  2. Upload File to S3 — upload the file from your device to the returned URL

  3. Register Attachment — POST /public/v1/accounting/accounts-payable/attachments

Supported AP transaction types are invoices, credit memos and payments. The transaction must already exist; attaching a file is a separate operation from creating the transaction.

Security
HTTP
Type Bearer
Header parameters
x-r365-context-tenant-id
stringRequired

Identifies the R365 tenant the request applies to. Required on every request.

Body parameters
object
fileName
string Required

The original file name, including an extension that matches fileType — for example "receipt-scan.pdf" with fileType "application/pdf". The extensions .jpg, .jpeg and .jpe are interchangeable, as are .tif and .tiff.

fileType
string Required

The MIME content type of the file. The file you upload in step 2 must be of this type.

Valid values[ "application/pdf", "image/jpeg", "image/jpg", "image/jpe", "image/png", "image/tiff", "image/tif", "image/heic", "image/bmp", "image/gif", "image/x-jp2", "image/svg+xml", "text/csv", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ]
fileSizeBytes
integer (int64) Required

The exact size of the file in bytes. The file you upload in step 2 must be exactly this size. The default maximum is 26,214,400 bytes (25 MiB), configurable per organization.

Minimum1.0
Responses
200

A size-constrained pre-signed upload URL and generated storage file name were created successfully.

object
url
string

The pre-signed Amazon S3 URL to PUT the raw file bytes to. Expires 5 minutes after it is issued. Treat as a secret.

newFileName
string

The generated storage file name. Pass this value as newFileName in step 3. It is derived from fileName — special characters are replaced with hyphens and a unique identifier is appended — so it will not match the name you sent.

storageType
string

The storage backend the file will be uploaded to. Currently always "S3".

400

Bad Request — a parameter value is malformed, of the wrong type, or outside its allowed range.

401

Unauthorized — the bearer token is missing, invalid or expired, or is not valid for the specified tenant.

403

Forbidden — the caller lacks the permission required for this operation.

404

Not Found — the requested resource does not exist, or the supplied continuation token is unknown or has expired.

409

Conflict — the request conflicts with the current state of the resource and cannot be applied.

422

Unprocessable Entity — a required parameter is missing, or a supplied parameter value is invalid.

429

Too Many Requests — the caller has exceeded the rate limit; retry after a short delay.

500

Internal Server Error — an unexpected error occurred while processing the request.