naftiko: 1.0.0-alpha2 info: label: Coupa Core API — Requisitions description: 'Coupa Core API — Requisitions. 7 operations. Lead operation: Coupa List requisitions. Self-contained Naftiko capability covering one Coupa business surface.' tags: - Coupa - Requisitions created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: COUPA_API_KEY: COUPA_API_KEY capability: consumes: - type: http namespace: core-requisitions baseUri: https://{instance}.coupahost.com/api description: Coupa Core API — Requisitions business capability. Self-contained, no shared references. resources: - name: requisitions path: /requisitions operations: - name: listrequisitions method: GET description: Coupa List requisitions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: status in: query type: string description: Filter by requisition status (draft, cart, pending_buyer_action, pending_approval, approved, ordered, partially_received, received, abandoned, withdrawn) - name: requester[login] in: query type: string description: Filter by requester login - name: updated-at[gt] in: query type: string description: Filter for records updated after this datetime - name: exported in: query type: boolean description: Filter by export status - name: createrequisition method: POST description: Coupa Create a requisition outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: requisitions-submit_for_approval path: /requisitions/submit_for_approval operations: - name: submitrequisitionforapproval method: POST description: Coupa Submit a requisition for approval outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: requisitions-id path: /requisitions/{id} operations: - name: getrequisition method: GET description: Coupa Get a requisition outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updaterequisition method: PUT description: Coupa Update a requisition outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deleterequisition method: DELETE description: Coupa Delete a requisition outputRawFormat: json outputParameters: - name: result type: object value: $. - name: requisitions-id-update_and_submit_for_approval path: /requisitions/{id}/update_and_submit_for_approval operations: - name: updateandsubmitrequisition method: PUT description: Coupa Update and submit a requisition for approval outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.COUPA_API_KEY}}' exposes: - type: rest namespace: core-requisitions-rest port: 8080 description: REST adapter for Coupa Core API — Requisitions. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/requisitions name: requisitions description: REST surface for requisitions. operations: - method: GET name: listrequisitions description: Coupa List requisitions call: core-requisitions.listrequisitions with: status: rest.status requester[login]: rest.requester[login] updated-at[gt]: rest.updated-at[gt] exported: rest.exported outputParameters: - type: object mapping: $. - method: POST name: createrequisition description: Coupa Create a requisition call: core-requisitions.createrequisition with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/requisitions/submit-for-approval name: requisitions-submit-for-approval description: REST surface for requisitions-submit_for_approval. operations: - method: POST name: submitrequisitionforapproval description: Coupa Submit a requisition for approval call: core-requisitions.submitrequisitionforapproval with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/requisitions/{id} name: requisitions-id description: REST surface for requisitions-id. operations: - method: GET name: getrequisition description: Coupa Get a requisition call: core-requisitions.getrequisition outputParameters: - type: object mapping: $. - method: PUT name: updaterequisition description: Coupa Update a requisition call: core-requisitions.updaterequisition with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleterequisition description: Coupa Delete a requisition call: core-requisitions.deleterequisition outputParameters: - type: object mapping: $. - path: /v1/requisitions/{id}/update-and-submit-for-approval name: requisitions-id-update-and-submit-for-approval description: REST surface for requisitions-id-update_and_submit_for_approval. operations: - method: PUT name: updateandsubmitrequisition description: Coupa Update and submit a requisition for approval call: core-requisitions.updateandsubmitrequisition with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: core-requisitions-mcp port: 9090 transport: http description: MCP adapter for Coupa Core API — Requisitions. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: coupa-list-requisitions description: Coupa List requisitions hints: readOnly: true destructive: false idempotent: true call: core-requisitions.listrequisitions with: status: tools.status requester[login]: tools.requester[login] updated-at[gt]: tools.updated-at[gt] exported: tools.exported outputParameters: - type: object mapping: $. - name: coupa-create-requisition description: Coupa Create a requisition hints: readOnly: false destructive: false idempotent: false call: core-requisitions.createrequisition with: body: tools.body outputParameters: - type: object mapping: $. - name: coupa-submit-requisition-approval description: Coupa Submit a requisition for approval hints: readOnly: false destructive: false idempotent: false call: core-requisitions.submitrequisitionforapproval with: body: tools.body outputParameters: - type: object mapping: $. - name: coupa-get-requisition description: Coupa Get a requisition hints: readOnly: true destructive: false idempotent: true call: core-requisitions.getrequisition outputParameters: - type: object mapping: $. - name: coupa-update-requisition description: Coupa Update a requisition hints: readOnly: false destructive: false idempotent: true call: core-requisitions.updaterequisition with: body: tools.body outputParameters: - type: object mapping: $. - name: coupa-delete-requisition description: Coupa Delete a requisition hints: readOnly: false destructive: true idempotent: true call: core-requisitions.deleterequisition outputParameters: - type: object mapping: $. - name: coupa-update-and-submit-requisition description: Coupa Update and submit a requisition for approval hints: readOnly: false destructive: false idempotent: true call: core-requisitions.updateandsubmitrequisition with: body: tools.body outputParameters: - type: object mapping: $.