//native
/**
* Change Invoice Status
* Submit a draft invoice for approval, or abandon, void, or dispute an invoice.
*/
export async function main(
auth: RT.Coupa,
invoice_id: number,
action: "submit" | "abandon" | "void" | "dispute"
) {
const base = auth.instance_url.replace(/\/+$/, "")
const url = new URL(`${base}/api/invoices/${invoice_id}/${action}`)
const response = await fetch(url, {
method: "PUT",
headers: {
Authorization: `Bearer ${auth.token}`,
Accept: "application/json",
},
})
if (!response.ok) {
throw new Error(`${response.status} ${await response.text()}`)
}
if (response.status === 204) return { success: true }
return await response.json()
}
Submitted by hugo989 3 hours ago