# Policy Transactions Schedules API



<EndpointIndex
  names={[
  	'getTransactionSchedules',
  	'getTransactionSchedule',
  	'uploadDeserializedTransactionSchedule',
  	'addTransactionSchedule',
  	'uploadTransactionSchedule',
  	'deleteTransactionSchedule',
  	'updateTransactionSchedule',
  ]}
  titles={{
  	getTransactionSchedules: 'Get Schedules for a transaction',
  	getTransactionSchedule: 'Get a Schedule and items',
  	uploadDeserializedTransactionSchedule:
  		'Upload Transaction Schedule Items for Deserialization',
  	addTransactionSchedule: 'Add items to schedule',
  	uploadTransactionSchedule: 'Upload a CSV of schedule items',
  	deleteTransactionSchedule: 'Delete an item from schedule',
  	updateTransactionSchedule: 'Update a schedule item',
  }}
/>

Fetch [#fetch]

Get Schedules for a transaction [#get-schedules-for-a-transaction]

<ApiEndpoint name="getTransactionSchedules" title="Get Schedules for a transaction" />

<ApiSchema name="ElementScheduleResponse" />

Get a Schedule and items [#get-a-schedule-and-items]

<ApiEndpoint name="getTransactionSchedule" title="Get a Schedule and items" />

<ApiSchema name="ScheduleItemsResponse" />

<ApiSchema name="ScheduleItem" />

Upload Transaction Schedule Items for Deserialization [#upload-transaction-schedule-items-for-deserialization]

<ApiEndpoint name="uploadDeserializedTransactionSchedule" title="Upload Transaction Schedule Items for Deserialization" />

<ApiSchema name="DeserializationResponse" />

Updating [#updating]

Add items to schedule [#add-items-to-schedule]

<ApiEndpoint name="addTransactionSchedule" title="Add items to schedule" />

<ApiSchema name="AddScheduleItemRequest" />

API requests to add items to a schedule are limited to 500 items

Upload a CSV of schedule items [#upload-a-csv-of-schedule-items]

<ApiEndpoint name="uploadTransactionSchedule" title="Upload a CSV of schedule items" />

CSV for bulk upload of schedule items only support flat item data structures
i.e. no nested objects in the schedule definition.

Delete an item from schedule [#delete-an-item-from-schedule]

<ApiEndpoint name="deleteTransactionSchedule" title="Delete an item from schedule" />

Delete individual items from a schedule by specifying their locator within the
string array of the request.

Update a schedule item [#update-a-schedule-item]

<ApiEndpoint name="updateTransactionSchedule" title="Update a schedule item" />

<ApiSchema name="PatchScheduleItemRequest" />

See Also [#see-also]

* [Schedules Feature Guide](/features/schedules)


## API Reference

GET /policy/{tenantLocator}/transactions/{locator}/schedules — getTransactionSchedules
Tags: transactions-controller
Permissions: read, schedule-read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
Responses:
  200 map<string, ElementScheduleResponse> — OK

GET /policy/{tenantLocator}/transactions/{locator}/schedules/{staticElementLocator} — getTransactionSchedule
Tags: transactions-controller
Permissions: read, schedule-read
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  staticElementLocator (ulid, path, required)
  lastSeenLocator (ulid, query)
Responses:
  200 ScheduleItemsResponse — OK

POST /policy/{tenantLocator}/transactions/{locator}/schedules/{staticElementLocator}/deserialize — uploadDeserializedTransactionSchedule
Tags: transactions-controller
Permissions: write, schedule-add
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  staticElementLocator (ulid, path, required)
  params (map<string, string>, query, required)
Responses:
  200 DeserializationResponse — OK

PUT /policy/{tenantLocator}/transactions/{locator}/schedules/{staticElementLocator} — addTransactionSchedule
Tags: transactions-controller
Permissions: write, schedule-add
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  staticElementLocator (ulid, path, required)
Request body (AddScheduleItemRequest[]):
Responses:
  200 ValidationResult — OK

POST /policy/{tenantLocator}/transactions/{locator}/schedules/{staticElementLocator} — uploadTransactionSchedule
Tags: transactions-controller
Permissions: write, schedule-add
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  staticElementLocator (ulid, path, required)
Responses:
  200 ValidationResult — OK

DELETE /policy/{tenantLocator}/transactions/{locator}/schedules/{staticElementLocator} — deleteTransactionSchedule
Tags: transactions-controller
Permissions: write, schedule-delete
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  staticElementLocator (ulid, path, required)
Request body (ulid[]):
Responses:
  200 — OK

PATCH /policy/{tenantLocator}/transactions/{locator}/schedules/{staticElementLocator} — updateTransactionSchedule
Tags: transactions-controller
Permissions: write, schedule-update
Parameters:
  tenantLocator (uuid, path, required)
  locator (ulid, path, required)
  staticElementLocator (ulid, path, required)
Request body (PatchScheduleItemRequest[]):
Responses:
  200 ValidationResult — OK

ElementScheduleResponse
Properties:
  staticElementLocator (ulid, required)
  elementType (string, required)
  scheduleItemType (string, required)
  complexData (boolean, required)
  maxValidationErrors (integer, required)

ScheduleItemsResponse
Properties:
  items (ScheduleItem[], required)
  lastSeenLocator (ulid, required)

ScheduleItem
Properties:
  locator (ulid, required)
  staticElementLocator (ulid, required)
  type (string, required)
  data (map<string, object>, required)
  createdAt (datetime, required)
  createdBy (uuid, required)

DeserializationResponse
Properties:
  jobLocator (ulid, required)

AddScheduleItemRequest
Properties:
  data (map<string, object>, required)

PatchScheduleItemRequest
Properties:
  locator (ulid, required)
  setData (map<string, object>, required)
  removeData (map<string, object>, required)