Scheduling Agreement Collaboration API

Integrate your external systems to collaborate on scheduling agreements.

The Scheduling Agreement Collaboration API integrates your external ERP's scheduling agreements directly into Coupa.

This API enables you to:
  • Create, retrieve, update, and cancel scheduling agreements.

  • Issue scheduling agreements to suppliers.

  • Get and manage attachments for a scheduling agreement.

  • Confirm and mark delivery schedules as exported to synchronize their status with your external system.

The scheduling agreement process uses APIs for both inbound and outbound data flow:

  1. Send a POST request to create a new, open Scheduling Agreement in Coupa, originating from your external ERP system.

  2. Buyers and suppliers collaborate on the delivery schedules using the Coupa UI and the Coupa Supplier Portal (CSP), exchanging confirmations, proposed changes, and comments.

  3. Once the collaboration is complete and the buyer makes a final decision (for example, confirming a change or cancelling a line), use a GET request to retrieve the final status and details of the scheduling agreement to synchronize the data back to your ERP.

Note:

This API is available only for customers that participate in the Early Access Program (EAP). If you want to be an EAP customer, contact your Coupa representative.

Actions

Verb Path Description

GET

/api/scheduling_agreements

Get all scheduling agreements

POST

/api/scheduling_agreements

Create a new scheduling agreement

GET

/api/scheduling_agreements/{agreementId}

Get the details of a specific scheduling agreement by its ID

PUT

/api/scheduling_agreements/{agreementId}

Update a scheduling agreement

POST

/api/scheduling_agreements/{agreementId}/issue

Issue a scheduling agreement

POST

/api/scheduling_agreements/{agreementId}/cancel

Cancel a scheduling agreement.

GET

/api/delivery_schedules

Get all delivery schedules.

POST

/api/delivery_schedules/set_confirmed

Confirm the delivery schedules

POST

/api/delivery_schedules/set_exported

Mark the delivery schedules as exported

POST

/api/delivery_schedules/reset_exported

Reset the exported flag of the delivery schedules

GET

/api/scheduling_agreements/{agreementId}/attachments

Get the list of attachments for a scheduling agreement

POST

/api/scheduling_agreements/{agreementId}/attachments

Upload an attachment for a scheduling agreement.

GET

/api/scheduling_agreements/{agreementId}/attachments/{attachmentId}

Get a specific attachment of a scheduling agreement

DELETE

/api/scheduling_agreements/{agreementId}/attachments/{attachmentId}

Delete an attachment from a scheduling agreement

Scopes

This API requires the following scopes:

  • core.scheduling_agreement.read
  • core.scheduling_agreement.write

Elements

Scheduling Agreement elements

ElementDescriptionReq'dUniqueAllowable ValueInOutData Type
idCoupa's unique ID for the scheduling agreement.NoYesNoYesInteger
external-scheduling-agreement-numberThe unique identifier for the agreement from the external system.YesYesYesYesString
typeThe type of scheduling agreement.YesWITHOUT_RELEASEYesYesString
statusThe current status of the agreement.NoDraft, Issued, CancelledNoYesString
is-issuedControls the initial status of the agreement. If true, the agreement is created in "Issued" state; otherwise, it is created as "Draft".Notrue, falseYesNoBoolean
validity-start-dateThe date when the agreement becomes valid.YesYesYesDatetime
validity-end-dateThe date when the agreement expires.YesYesYesDatetime
supplierThe supplier associated with the agreement.YesYesYesObject
shipping_addressThe shipping address for the agreement.NoYesYesObject
payment_termThe payment term for the agreement.NoYesYesObject
incotermsThe Incoterms for the agreement.NoYesYesString
incoterms-locationThe Incoterms location for the agreement.NoYesYesString
itemsAn array of line items included in the scheduling agreement.YesYesYesArray
created-atThe timestamp when the agreement was created in Coupa.NoNoYesDatetime
updated-atThe timestamp when the agreement was last updated in Coupa.NoNoYesDatetime
created-byThe user who created the agreement in Coupa.NoNoYesObject

Create a Scheduling Agreement

Method

POST /api/scheduling_agreements

Example cURL request
curl --location 'https://<your-instance>.com/api/scheduling_agreements' \
--header 'Accept: application/json' \
--header 'Accept: application/xml' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <your-api-key>' \
--data '{
    "external-scheduling-agreement-number": "SA-SAMPLE-0010",
    "type": "WITHOUT_RELEASE",
    "is-issued": true,
    "validity-start-date": "2026-01-01T00:00:00Z",
    "validity-end-date": "2026-12-31T23:59:59Z",
    "supplier": {
        "id": 1
    },
    "shipping_address": {
        "id": 3
    },
    "payment_term": {
        "id": 1
    },
    "items": [
        {
            "external-reference-id": "ITEM-EXT-001",
            "item": {
                "id": 1
            },
            "item-description": "Item A",
            "price": 25.50,
            "currency": {
                "id": 1
            },
            "quantity": 10,
            "uom": {
                "id": 1
            },
             "warehouse": {
                 "id": 1
             },
            "firm-zone": 2,
            "trade-off-zone": 4,
            "need-by": "2026-06-15T00:00:00Z",
            "is-confirmation-required": true,
            "schedule_lines": [
                {
                    "external-reference-id": "SL-EXT-001-1",
                    "delivery-date": "2026-02-01T00:00:00Z",
                    "quantity": 10,
                    "uom": {
                        "id": 1
                    }
                }
            ]
        },
        {
            "external-reference-id": "ITEM-EXT-002",
            "item": {
                "id": 2
            },
            "item-description": "Item B",
            "price": 15.00,
            "currency": {
                "id": 1
            },
            "quantity": 5,
            "uom": {
                "id": 1
            },
            "firm-zone": 1,
            "trade-off-zone": 2,
            "need-by": "2026-07-01T00:00:00Z",
            "is-confirmation-required": false,
            "schedule_lines": [
                {
                    "external-reference-id": "SL-EXT-002-1",
                    "delivery-date": "2026-03-01T00:00:00Z",
                    "quantity": 5,
                    "uom": {
                        "id": 1
                    }
                }
            ]
        },
        {
            "external-reference-id": "ITEM-EXT-003",
            "item": {
                "id": 3
            },
            "item-description": "Item C",
            "price": 100.00,
            "currency": {
                "id": 1,
                "code": "USD"
            },
            "quantity": 20,
            "uom": {
                "id": 1
            },
            "firm-zone": 3,
            "trade-off-zone": 6,
            "need-by": "2026-08-01T00:00:00Z",
            "is-confirmation-required": true,
            "schedule_lines": [
                {
                    "external-reference-id": "SL-EXT-003-1",
                    "delivery-date": "2026-04-01T00:00:00Z",
                    "quantity": 5,
                    "uom": {
                        "id": 1
                    }
                },
                {
                    "external-reference-id": "SL-EXT-003-2",
                    "delivery-date": "2026-05-01T00:00:00Z",
                    "quantity": 8,
                    "uom": {
                        "id": 1
                    }
                },
                {
                    "external-reference-id": "SL-EXT-003-3",
                    "delivery-date": "2026-06-01T00:00:00Z",
                    "quantity": 7,
                    "uom": {
                        "id": 1
                    }
                }
            ]
        }
    ]
}'
Example response
{
    "id": 502,
    "external-scheduling-agreement-number": "SA-SAMPLE-0010",
    "status": "Issued",
    "validity-start-date": "2026-01-01T00:00:00Z",
    "validity-end-date": "2026-12-31T23:59:59Z",
    "supplier": {
        "id": 1,
        "name": "Global Tech Supplies"
    },
    "items": [
        {
            "id": 702,
            "external-reference-id": "ITEM-EXT-001",
            "item-description": "Item A",
            "quantity": "10.0",
            "schedule_lines": [
                {
                    "id": 903,
                    "external-reference-id": "SL-EXT-001-1",
                    "status": "Pending Confirmation",
                    "delivery-date": "2026-02-01T00:00:00Z",
                    "quantity": "10.0"
                }
            ]
        },
        {
            "id": 703,
            "external-reference-id": "ITEM-EXT-002",
            "item-description": "Item B",
            "quantity": "5.0",
            "schedule_lines": [
                {
                    "id": 904,
                    "external-reference-id": "SL-EXT-002-1",
                    "status": "Issued",
                    "delivery-date": "2026-03-01T00:00:00Z",
                    "quantity": "5.0"
                }
            ]
        },
        {
            "id": 704,
            "external-reference-id": "ITEM-EXT-003",
            "item-description": "Item C",
            "quantity": "20.0",
            "schedule_lines": [
                {
                    "id": 905,
                    "external-reference-id": "SL-EXT-003-1",
                    "status": "Pending Confirmation",
                    "delivery-date": "2026-04-01T00:00:00Z",
                    "quantity": "5.0"
                },
                {
                    "id": 906,
                    "external-reference-id": "SL-EXT-003-2",
                    "status": "Pending Confirmation",
                    "delivery-date": "2026-05-01T00:00:00Z",
                    "quantity": "8.0"
                },
                {
                    "id": 907,
                    "external-reference-id": "SL-EXT-003-3",
                    "status": "Pending Confirmation",
                    "delivery-date": "2026-06-01T00:00:00Z",
                    "quantity": "7.0"
                }
            ]
        }
    ]
}

Get a scheduling agreement

Method

GET /api/scheduling_agreements/{agreementId}

Example cURL request
curl --location 'https://<your-instance>.com/api/scheduling_agreements/{agreementId}/1234' \
--header 'Accept: application/json' \
--header 'Accept: application/xml' \
--header 'Authorization: ••••••'
Example response
{
    "id": 1234,
    "external-scheduling-agreement-number": "SA-SAMPLE-0010",
    "type": "WITHOUT_RELEASE",
    "status": "Issued",
    "validity-start-date": "2026-08-16T00:00:00Z",
    "validity-end-date": "2027-09-15T23:59:59Z",
    "supplier": {
        "id": 5,
        "name": "Global Tech Supplies"
    },
    "shipping_address": {
        "id": 2,
        "name": "Dhoom Industries - Jaipur"
    },
    "payment-term": {
        "id": 1,
        "code": "Net 30"
    },
    "items": [
        {
            "id": 1432,
            "external-reference-id": "ITEM-A",
            "item-description": "A grade Leather",
            "quantity": 100.00,
            "is-confirmation-required": true,
            "delivery-schedules": [
                {
                    "id": 8539,
                    "external-reference-id": "DS-A1",
                    "delivery-date": "2026-09-16T00:00:00Z",
                    "commitment-level": "Firm",
                    "quantity": 10.00,
                    "status": "Pending Confirmation"
                },
                {
                    "id": 8541,
                    "external-reference-id": "DS-A3",
                    "delivery-date": "2026-11-16T00:00:00Z",
                    "commitment-level": "Trade Off",
                    "quantity": 10.00,
                    "status": "Pending Confirmation"
                }
            ]
        },
        {
            "id": 1433,
            "external-reference-id": "ITEM-B",
            "item-description": "Rubber",
            "quantity": 200.00,
            "is-confirmation-required": false,
            "delivery-schedules": [
                {
                    "id": 8549,
                    "external-reference-id": "DS-B1",
                    "delivery-date": "2026-09-16T00:00:00Z",
                    "commitment-level": "Firm",
                    "quantity": 20.00,
                    "status": "Issued"
                }
            ]
        }
    ]
}