0

Create Requisition

by
Published today

Create a requisition (draft cart), or create and submit it for approval. Body needs requisition-lines; field names use dashes.

Script coupa Verified

The script

Submitted by hugo989 Typescript (fetch-only)
Verified 2 hours ago
1
//native
2

3
/**
4
 * Create Requisition
5
 * Create a requisition (draft cart), or create and submit it for approval. Body needs requisition-lines; field names use dashes.
6
 */
7
export async function main(
8
  auth: RT.Coupa,
9
  body: { [key: string]: any },
10
  submit_for_approval: boolean | undefined
11
) {
12
  const base = auth.instance_url.replace(/\/+$/, "")
13
  const path = submit_for_approval
14
    ? "/api/requisitions/submit_for_approval"
15
    : "/api/requisitions"
16
  const url = new URL(`${base}${path}`)
17

18
  const response = await fetch(url, {
19
    method: "POST",
20
    headers: {
21
      Authorization: `Bearer ${auth.token}`,
22
      "Content-Type": "application/json",
23
      Accept: "application/json",
24
    },
25
    body: JSON.stringify(body),
26
  })
27

28
  if (!response.ok) {
29
    throw new Error(`${response.status} ${await response.text()}`)
30
  }
31

32
  if (response.status === 204) return { success: true }
33
  return await response.json()
34
}
35