Template catalog
Query templates and run readiness
Use List business workflow templates:template_key from data.list. The endpoint supports name searches with search and pagination with offset and size.
Use the live query response to determine availability. If
can_run=false, add, configure, and publish the corresponding application in the ADP Console, then query again. An application_id or is_added=true alone does not mean the template can run.Prepare documents
Upload local files with the Upload file endpoint first. Usemultipart/form-data, place the file in chunk, set application_id to the value returned by the template query, and use application for sharing_scope.
Map data.download_url from the upload response to files[].url, data.file_name to name, and data.content_type to mime_type in the run request. Use one file entry per document. If you already have an accessible public HTTP(S) file URL, you can provide url, name, and mime_type directly.
Run with the shared APIs
All three templates use the same endpoint paths and request structure. Select the target template application withapplication_id:
The following example uses the financial reporting template. Confirm that its
can_run value is true, replace the file details with your actual document, and submit the same JSON body to either the synchronous or asynchronous run endpoint:
application_id is the stable public ID for the financial reporting template. For accounts payable or expense reimbursement, use the corresponding template’s returned application_id and your document files.
Each files entry requires url, name, and mime_type, and optionally accepts size and metadata. Set inputs according to the published workflow’s actual input configuration; omit it when no extra parameters are required. You can omit release_version_id to let the service select the published version.
The synchronous endpoint waits for execution to finish. After the asynchronous endpoint returns data.run_id, use the query endpoint to retrieve the status and result. Read data.output after confirming HTTP success, a successful top-level code, and data.status=succeeded. For a failed run, inspect data.error.