Tradeshift · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Tradeshift External API

5 actions 5 updates documentation extends openapi/tradeshift-external-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Tradeshift's API. It is a proposal applied on top of the contract, not a document Tradeshift publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

descriptioncontacttermsOfServicex-apievangelist-rating-sourcex-logocomponentssecurityx-apievangelist-artifacts

Targets 5

$.info
$.servers
$
$.paths['/rest/external/documents/{documentId}'].put
$.paths['/rest/external/documents/{documentId}'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Tradeshift External API
  version: 1.0.0
extends: openapi/tradeshift-external-api-openapi.yml
x-generated: '2026-08-02'
x-method: generated
x-source: >-
  Derived from the harvested spec plus Tradeshift's own published documentation (developer center guides, API root,
  RFC 8414 metadata). Applies our enhancements without mutating openapi/_original/tradeshift-openapi.json.
actions:
  - target: $.info
    description: Fill in the metadata the harvested spec omits.
    update:
      description: >-
        REST API over the Tradeshift business commerce platform — company accounts and branches, legal entities,
        taxes and dynamic validations, network connections and connection properties, document profiles, UBL/TSUBL
        business documents, document files, attachments, requisitions, quotes, receipt advices, users, assignments,
        buyer-sourced documents, and document validation and clearance.
      contact:
        name: Tradeshift Developer Center
        url: https://developers.tradeshift.com/
      termsOfService: https://tradeshift.com/terms-of-service/
      x-apievangelist-rating-source: https://apis.io/providers/tradeshift
      x-logo:
        url: https://tradeshift.com/wp-content/uploads/2021/01/Logo-symbol-white-on-blue-bg-@10x.png
  - target: $.servers
    description: Add the sandbox server alongside production; the harvested spec lists production only.
    update:
      - url: https://api-sandbox.tradeshift.com/tradeshift
        description: Sandbox environment.
  - target: $
    description: >-
      Add the security schemes Tradeshift documents in prose but never declares in the spec, and apply them globally.
    update:
      components:
        securitySchemes:
          TradeshiftOAuth2:
            type: oauth2
            description: >-
              Three-legged OAuth 2.0 for apps acting on behalf of a Tradeshift user. Client Id and Client Secret are
              issued by the Developer App.
            flows:
              implicit:
                authorizationUrl: https://go.tradeshift.com/oauth2/authorize
                scopes: {}
          TradeshiftOAuth1:
            type: http
            scheme: oauth
            description: >-
              Two-legged OAuth 1.0a with HMAC-SHA1 signing, using the consumer key/secret and token/token secret from
              the "API Access to Own Account" app. Marked deprecated by Tradeshift — backward compatibility only.
        parameters:
          TradeshiftTenantId:
            name: X-Tradeshift-TenantId
            in: header
            required: true
            description: UUID of the Tradeshift company account (tenant) the request acts on.
            schema:
              type: string
              pattern: '^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$'
      security:
        - TradeshiftOAuth2: []
        - TradeshiftOAuth1: []
      x-apievangelist-artifacts:
        authentication: authentication/tradeshift-authentication.yml
        conventions: conventions/tradeshift-conventions.yml
        errors: errors/tradeshift-problem-types.yml
        lifecycle: lifecycle/tradeshift-lifecycle.yml
        webhooks: asyncapi/tradeshift-webhooks.yml
        data_model: data-model/tradeshift-data-model.yml
        sandbox: sandbox/tradeshift-sandbox.yml
        json_schema: json-schema/
      x-apievangelist-conventions:
        idempotency:
          mechanism: client-assigned-resource-uuid
          note: PUT with a client-chosen UUID makes document/tag/property/branch writes replay-safe.
        pagination:
          style: page-number
          request: [page, limit, count]
          response: [itemsPerPage, itemCount, numPages, pageId]
        errors:
          envelope: '{ErrorCode, Message, ErrorDetail[{Key, Value}]}'
          rfc9457: false
        rate_limits:
          documented: false
  - target: $.paths['/rest/external/documents/{documentId}'].put
    description: Record the idempotency semantics Tradeshift describes in prose.
    update:
      x-idempotent: true
      x-idempotency-mechanism: client-assigned-resource-uuid
      x-idempotency-key-parameter: documentId
  - target: $.paths['/rest/external/documents/{documentId}'].get
    description: Record the supported representations for document retrieval.
    update:
      x-representations:
        - application/xml (UBL / TSUBL, default)
        - application/json
        - Oasis JSON
        - application/pdf