Procuros Incoming Transactions API

The Incoming Transactions API from Procuros — 3 operation(s) for incoming transactions.

OpenAPI Specification

procuros-incoming-transactions-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Procuros All Transactions Incoming Transactions API
  description: Manage Procuros Transactions.
  version: 2.0.0
servers:
- url: https://api.procuros.io/
- url: https://api.procuros-staging.io/
security:
- api_token: []
tags:
- name: Incoming Transactions
paths:
  /v2/transactions:
    get:
      operationId: v2_list_received_transactions
      summary: List Incoming Transactions
      description: List unprocessed incoming transactions from your trade partners.
      tags:
      - Incoming Transactions
      parameters:
      - name: filter[type]
        in: query
        required: false
        allowReserved: true
        schema:
          $ref: '#/components/schemas/TransactionType'
      - name: cursor
        in: query
        description: Page cursor
        required: false
        schema:
          type: string
      - name: per_page
        in: query
        description: Number of transactions returned per page.
        required: false
        schema:
          type: integer
          default: 100
          minimum: 1
          maximum: 100
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                - items
                - hasMore
                - perPage
                - count
                - nextCursor
                - nextPageUrl
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/ReceivedTransaction'
                  hasMore:
                    type: boolean
                    description: Whether or not more transactions can be fetched on the next page.
                  perPage:
                    type: integer
                    description: Amount of transactions returned per page.
                  count:
                    type: integer
                    description: Amount of transactions on the current page.
                  nextCursor:
                    type: string
                    nullable: true
                    description: Supplied to the `cursor` query parameter. See [Pagination] for more info.
                  nextPageUrl:
                    type: string
                    format: url
                    nullable: true
                    description: Prebuilt URL to retrieve the next page of transactions.
              examples:
                List of transactions:
                  value:
                    hasMore: false
                    perPage: 100
                    count: 3
                    nextCursor: null
                    nextPageUrl: null
                    items:
                    - procurosTransactionId: 949b2f25-fd9d-4c58-8899-b4dc277f8cf9
                      type: ORDER
                      content:
                        header:
                          buyer:
                            name: ACME Co. Ltd.
                            identifiers:
                            - identifier: '1100001016310'
                              domain: GS1
                            postalAddress:
                              name: ACME Co. Ltd.
                              street: Elroy-Fritsch-Ring 15
                              city: Berlin
                              countryCode: DE
                              postalCode: '82643'
                            contacts:
                            - firstName: John
                              lastName: Doe
                              email: jane.doe@example.com
                              fax: (818) 463-6124
                              phone: +1.352.856.0626
                          supplier:
                            name: Testsupplier
                            identifiers:
                            - identifier: '1100001016312'
                              domain: GS1
                          shipTo:
                            identifiers:
                            - identifier: '1100001016313'
                              domain: GS1
                          billTo:
                            identifiers:
                            - identifier: '1100001016314'
                              domain: GS1
                          orderIdentifier: PO9383-R45
                          orderDate: '2021-09-30'
                          currency: EUR
                          requestedDeliveryDate: '2021-10-05'
                          comments: Something to comment
                        items:
                        - lineNumber: 1
                          identifiers:
                          - identifier: '4300348765432'
                            domain: GS1
                          - identifier: PROD-77-LS
                            domain: BUYER
                          - identifier: sp_gr_8
                            domain: SUPPLIER
                          isDepositItem: false
                          quantity: 20
                          unitOfMeasure: EA
                          description: First product description.
                          unitPrice: 0.15
                        - lineNumber: 2
                          identifiers:
                          - identifier: '4300348765433'
                            domain: GS1
                          - identifier: PROD-78-LS
                            domain: BUYER
                          - identifier: sp_gr_9
                            domain: SUPPLIER
                          isDepositItem: false
                          quantity: 19
                          unitOfMeasure: EA
                          description: Sparkling Water - Crate (6x0.75l).
                          unitPrice: 1.5
                        - lineNumber: 3
                          identifiers:
                          - identifier: '4300348765434'
                            domain: GS1
                          - identifier: PFAND-00B-LS
                            domain: SUPPLIER
                          isDepositItem: true
                          quantity: 19
                          unitOfMeasure: EA
                          description: Deposit 1x crate + 6x bottles.
                          unitPrice: 3.3
                    - procurosTransactionId: 94fe13aa-8c9b-40e5-9937-42b852185858
                      type: SHIPPING_NOTICE
                      content:
                        header:
                          buyer:
                            name: ACME Co. Ltd.
                            identifiers:
                            - identifier: '1100001016310'
                              domain: GS1
                            postalAddress:
                              city: Berlin
                              countryCode: DE
                              name: ACME Co. Ltd.
                              postalCode: '82643'
                              street: Elroy-Fritsch-Ring 15
                            contacts:
                            - firstName: Jane
                              lastName: Doe
                              email: jane.doe@example.com
                              fax: (818) 463-6124
                              phone: +1.352.856.0626
                          supplier:
                            name: Testsupplier
                            identifiers:
                            - identifier: '1100001016312'
                              domain: GS1
                          shipTo:
                            identifiers:
                            - identifier: '1100001016313'
                              domain: GS1
                          billTo:
                            identifiers:
                            - identifier: '1100001016314'
                              domain: GS1
                          shippingNoticeIdentifier: SN9383-R45
                          shippingNoticeDate: '2021-11-24'
                          orderIdentifier: PO9383-R45
                          orderDate: '2021-11-20'
                          despatchDate: '2021-11-05'
                          requestedDeliveryDate: '2021-11-06'
                          expectedDeliveryDate: '2021-11-06'
                          carrier: Example Delivery Solution
                          trackingNumber: b52ea6a7-c2ea-3bfc-a63f-19140d3b3af5
                          trackingUrl: https://api.procuros.com/example
                          comments: Something to comment
                        transportUnits:
                        - items:
                          - lineNumber: 1
                            orderLineNumber: 1
                            identifiers:
                            - identifier: '4300348765432'
                              domain: GS1
                            - identifier: PROD-77-LS
                              domain: BUYER
                            - identifier: sp_gr_8
                              domain: SUPPLIER
                            isDepositItem: false
                            orderedQuantity: 20
                            shippedQuantity: 20
                            unitPrice: 200
                            description: First product description.
                          - lineNumber: 2
                            orderLineNumber: 2
                            identifiers:
                            - identifier: '4300348765433'
                              domain: GS1
                            - identifier: PROD-78-LS
                              domain: BUYER
                            - identifier: sp_gr_9
                              domain: SUPPLIER
                            isDepositItem: false
                            orderedQuantity: 19
                            shippedQuantity: 15
                            openQuantityAction: DISCARDED
                            unitPrice: 1.5
                            description: Second product description.
                    - procurosTransactionId: 94fe1224-ae01-4587-8155-8e852cbbe75d
                      type: INVOICE
                      content:
                        header:
                          buyer:
                            name: ACME Co. Ltd.
                            identifiers:
                            - identifier: '4522704465331'
                              domain: GS1
                            - identifier: DE123456789
                              domain: VAT_DE
                            postalAddress:
                              city: Berlin
                              countryCode: DE
                              name: ACME Co. Ltd.
                              postalCode: '82643'
                              street: Elroy-Fritsch-Ring 15
                            contacts:
                            - firstName: Jane
                              lastName: Doe
                              email: jane.doe@example.com
                              fax: (818) 463-6124
                              phone: +1.352.856.0626
                          supplier:
                            name: Testsupplier
                            identifiers:
                            - identifier: '4231930775745'
                              domain: GS1
                            - identifier: DE234567890
                              domain: VAT_DE
                          shipTo:
                            identifiers:
                            - identifier: '1100001016313'
                              domain: GS1
                          billTo:
                            identifiers:
                            - identifier: '1100001016314'
                              domain: GS1
                          invoiceIdentifier: IV9383-R45
                          invoiceDate: '2021-11-11'
                          shippingNoticeIdentifier: SN9383-R45
                          shippingNoticeDate: '2021-11-04'
                          orderIdentifier: PO9383-R45
                          orderDate: '2021-11-10'
                          paymentTerms:
                          - payInNumberOfDays: 28
                            percentage: 3
                          comments: Something to comment
                        items:
                        - lineNumber: 1
                          identifiers:
                          - identifier: '4300348765432'
                            domain: GS1
                          - identifier: PROD-77-LS
                            domain: BUYER
                          - identifier: sp_gr_8
                            domain: SUPPLIER
                          isDepositItem: false
                          quantity: 20
                          unitPrice: 200
                          description: First product description.
                          tax:
                            amount: 760
                            percentage: 19
                            description: Total tax amount.
                        - lineNumber: 2
                          identifiers:
                          - identifier: '4300348765433'
                            domain: GS1
                          - identifier: PROD-78-LS
                            domain: BUYER
                          - identifier: sp_gr_9
                            domain: SUPPLIER
                          isDepositItem: false
                          quantity: 15
                          unitPrice: 1.5
                          description: Second product description.
                          tax:
                            amount: 26.775
                            percentage: 19
                            description: Total tax amount.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralValidationErrorResponse'
        4XX:
          description: Client Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalErrorResponse'
        5XX:
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalErrorResponse'
  /v2/transactions/{procurosTransactionId}:
    parameters:
    - name: procurosTransactionId
      in: path
      required: true
      schema:
        type: string
        format: uuid
    put:
      operationId: v2_mark_transaction_processed
      summary: Mark Transaction Processed
      description: Report processing of incoming transactions.
      tags:
      - Incoming Transactions
      requestBody:
        description: Expected parameters to update a transaction.
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - success
              properties:
                success:
                  type: boolean
                  description: Whether or not your system was able to process the given transaction.
                errorReason:
                  type: string
                  description: Reason your system was not able to process the given transaction.
                errorType:
                  $ref: '#/components/schemas/ErrorType'
                errorContext:
                  type: object
                  description: Additional context/meta data for the error.
                  additionalProperties:
                    type: string
            examples:
              Successfully Processed:
                value:
                  success: true
              Failed to Process:
                value:
                  success: false
                  errorReason: Product GTIN '0001647296281' not found
                  errorType: DATA
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    required:
                    - message
                    properties:
                      message:
                        type: string
                        description: Status message
                      errorUrl:
                        type: string
                        description: URL linking to the error on the Procuros Portal.
              examples:
                Successfully Processed:
                  value:
                    data:
                      message: OK.
                Failed to Process:
                  value:
                    data:
                      message: OK.
                      errorUrl: https://portal.procuros.io/transactions/{{procurosTransactionId}}/errors
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralValidationErrorResponse'
        4XX:
          description: Client Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalErrorResponse'
        5XX:
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalErrorResponse'
  /v2/transactions/bulk/mark-processed:
    post:
      operationId: v2_bulk_mark_transactions_processed
      summary: Bulk Mark Transactions Processed
      description: Mark a list of incoming transactions as processed.
      tags:
      - Incoming Transactions
      requestBody:
        description: Expected parameters to mark transactions as processed.
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - items
              properties:
                items:
                  type: array
                  minItems: 1
                  maxItems: 1000
                  items:
                    type: object
                    required:
                    - procurosTransactionId
                    - success
                    properties:
                      procurosTransactionId:
                        $ref: '#/components/schemas/ProcurosTransactionId'
                      success:
                        type: boolean
                        description: Whether or not your system was able to process the given transaction.
                      errorReason:
                        type: string
                        description: Reason your system was not able to process the given transaction.
                      errorType:
                        $ref: '#/components/schemas/ErrorType'
                      errorContext:
                        type: object
                        description: Additional context/meta data for the error.
                        additionalProperties:
                          type: string
            examples:
              Example:
                value:
                - procurosTransactionId: 949b2ef2-3f40-465e-a7ee-ea3f9f189860
                  success: true
                - procurosTransactionId: 949b2f25-fd9d-4c58-8899-b4dc277f8cf9
                  success: false
                  errorReason: Product GTIN '0001647296281' not found
                  errorType: DATA
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      required:
                      - procurosTransactionId
                      - message
                      properties:
                        procurosTransactionId:
                          $ref: '#/components/schemas/ProcurosTransactionId'
                        message:
                          type: string
                          description: Status message
                        errorUrl:
                          type: string
              examples:
                Processed:
                  value:
                    data:
                    - procurosTransactionId: 949b2ef2-3f40-465e-a7ee-ea3f9f189860
                      message: OK.
                    - procurosTransactionId: 949b2f25-fd9d-4c58-8899-b4dc277f8cf9
                      message: OK.
                      errorUrl: https://portal.procuros.io/transactions/{{procurosTransactionId}}/errors
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralValidationErrorResponse'
        4XX:
          description: Client Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalErrorResponse'
        5XX:
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalErrorResponse'
components:
  schemas:
    InventoryReportItem:
      type: object
      properties:
        name:
          type: string
        lineNumber:
          type: integer
        availableQuantity:
          type: number
          format: float
        blockedQuantity:
          type: number
          format: float
        orderedQuantity:
          type: number
          format: float
        identity:
          type: object
          properties:
            senderPartnerId:
              type: string
            receiverPartnerId:
              type: string
            gtin:
              type: string
        unitOfMeasure:
          $ref: '#/components/schemas/UnitOfMeasure'
        unitPrice:
          type: number
          format: float
        pricingUnitOfMeasure:
          type: string
          maxLength: 255
          description: The unit of measure used for pricing. This field specifies the unit that the price refers to, which may differ from the quantity unit (e.g., price per carton when quantity is in pieces).
        pricingUnitQuantity:
          type: number
          format: float
          description: 'The quantity of base units contained in the pricing unit of measure. For example, if the price is per carton (pricingUnitOfMeasure: "CT") and each carton contains 100 pieces, this field stores 100.'
        tax:
          $ref: '#/components/schemas/Tax'
        netWeight:
          type: integer
          description: In grams
        grossWeight:
          type: integer
          description: In grams
        hsCode:
          type: string
        originCountryCode:
          type: string
          description: ISO 3166-1 alpha-2 country code.
          example: DE
        colorCode:
          type: string
          description: Color code of the item.
        colorName:
          type: string
          description: Color name of the item.
        size:
          type: string
          description: Size of the item.
        dimension:
          type: string
          description: Dimension of the item.
        comment:
          type: string
        batches:
          type: array
          items:
            allOf:
            - $ref: '#/components/schemas/Batch'
            - properties:
                status:
                  type: string
                statusReason:
                  type: string
    TransactionContent:
      oneOf:
      - $ref: '#/components/schemas/Order'
      - $ref: '#/components/schemas/OrderResponse'
      - $ref: '#/components/schemas/ShippingNotice'
      - $ref: '#/components/schemas/Invoice'
      - $ref: '#/components/schemas/CreditNote'
      - $ref: '#/components/schemas/DispatchInstruction'
      - $ref: '#/components/schemas/DispatchInstructionResponse'
      - $ref: '#/components/schemas/ReceivalNotice'
      - $ref: '#/components/schemas/RemittanceAdvice'
      - $ref: '#/components/schemas/ProductCatalog'
      - $ref: '#/components/schemas/InventoryReport'
      - $ref: '#/components/schemas/SalesReport'
    PartyIdentifier:
      type: object
      required:
      - identifier
      - domain
      properties:
        identifier:
          type: string
          description: Party identifier within the "domain" such as GLN on GS1 domain, DUNS number on DUNS domain, etc.
          example: '1100001016310'
        domain:
          type: string
          description: Identification system the identifier belongs to.
          default: GS1
          enum:
          - GS1
          - DUNS
          - VAT_DE
          - FED_TAX
          - SENDER_INTERNAL
          - RECEIVER_INTERNAL
    ProductCatalogItemWithSubSubItems:
      allOf:
      - $ref: '#/components/schemas/ProductCatalogItem'
      - type: object
        properties:
          subItems:
            type: array
            description: Sub items of this product catalog item. Supports two levels of nesting.
            items:
              $ref: '#/components/schemas/ProductCatalogItemWithSubItems'
    ValidationError:
      type: object
      additionalProperties:
        type: array
        description: List of validation errors.
        minItems: 1
        items:
          type: string
    OrderResponseItem:
      type: object
      properties:
        lineNumber:
          example: 1
          type: integer
        orderLineNumber:
          type: integer
          description: The line number of the order item that this response item refers to.
        identifiers:
          type: array
          minItems: 1
          description: There must be at least one identifier with domain `GS1` or `BUYER`.
          items:
            $ref: '#/components/schemas/ItemIdentifier'
        isDepositItem:
          type: boolean
          description: 'If true, the item is a deposit item such as bottle deposit (German: Pfandartikel).'
        orderedQuantity:
          example: 2
          type: number
          format: float
        confirmedQuantity:
          example: 2
          type: number
          format: float
        requestedDeliveryDate:
          $ref: '#/components/schemas/DateTime'
        requestedEarliestDeliveryDate:
          $ref: '#/components/schemas/DateTime'
        requestedLatestDeliveryDate:
          $ref: '#/components/schemas/DateTime'
        confirmedDeliveryDate:
          $ref: '#/components/schemas/DateTime'
        confirmedEarliestDeliveryDate:
          $ref: '#/components/schemas/DateTime'
        confirmedLatestDeliveryDate:
          $ref: '#/components/schemas/DateTime'
        confirmedShipmentDate:
          $ref: '#/components/schemas/DateTime'
        unitOfMeasure:
          $ref: '#/components/schemas/UnitOfMeasure'
        description:
          type: string
        comments:
          type: string
        unitPrice:
          example: 4.75
          type: number
          format: float
        pricingUnitOfMeasure:
          type: string
          maxLength: 255
          description: The unit of measure used for pricing. This field specifies the unit that the price refers to, which may differ from the quantity unit (e.g., price per carton when quantity is in pieces).
        pricingUnitQuantity:
          type: number
          format: float
          description: 'The quantity of base units contained in the pricing unit of measure. For example, if the price is per carton (pricingUnitOfMeasure: "CT") and each carton contains 100 pieces, this field stores 100.'
        recommendedRetailPrice:
          example: 5.25
          type: number
          format: float
        tax:
          $ref: '#/components/schemas/Tax'
        contractReference:
          type: string
          maxLength: 255
          description: Contract reference for this item.
        promotionCode:
          type: string
          maxLength: 255
          description: Promotion code applied to this item.
        minimumRemainingShelfLifeInDays:
          type: integer
          description: Minimum remaining shelf life in days.
        netWeight:
          type: number
          format: float
          description: Net weight of the item in grams.
        grossWeight:
          type: number
          format: float
          description: Gross weight of the item in grams.
        originCountryCode:
          type: string
          description: ISO 3166-1 alpha-2 country code.
          example: DE
        colorCode:
          type: string
          description: Color code of the item.
        colorName:
          type: string
          description: Color name of the item.
        size:
          type: string
          description: Size of the item.
        dimension:
          type: string
          description: Dimension of the item.
        hsCode:
          type: string
          description: Harmonized System Code of the item.
        cnCode:
          type: string
          description: The 8-digit Combined Nomenclature (CN) code classifying this product for EU customs and trade statistics. Suppliers are responsible for providing a valid code.
        organicControlPointNumber:
          type: string
          maxLength: 255
          description: Organic Control Point Number of the supplier - OCPN is a unique identifier that verifies that a producer of organic products is adhering to the standards for organic production.
        fscNumber:
          type: string
          description: An FSC number refers to an identification number issued by the Forest Stewardship Council (FSC), an international organization that certifies sustainable forestry practices.
        mscNumber:
          type: string
          description: An MSC number refers to an identification number issued by the Marine Stewardship Council (MSC), an international organization that certifies sustainable fishing practices.
        season:
          type: string
          description: The season or collection period this item belongs to. Used to group and filter assortment by seasonal release.
        gender:
          type: string
          description: The target gender this item is designed for (e.g. Male, Female, Unisex). Used to classify and filter assortment by gender segment.
          example: SS27
        modificationGroups:
          type: array
          items:
            $ref: '#/components/schemas/ModificationGroup'
        attachments:
          type: array
          description: Document attachments for this line item response, such as technical datasheets, product labels, or compliance documentation.
          items:
            $ref: '#/components/schemas/LineItemAttachment'
    ProductCatalog:
      type: object
      title: Product Catalog
      required:
      - header
      - items
      properties:
        header:
          $ref: '#/components/schemas/ProductCatalogHeader'
        items:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ProductCatalogItemWithSubSubItems'
    SalesReportHeader:
      type: object
      required:
      - salesReportIdentifier
      - salesReportDate
      - salesPeriodStartDate
      - salesPeriodEndDate
      - supplier
      - buyer
      properties:
        salesReportIdentifier:
          type: string
        salesReportDate:
          $ref: '#/components/schemas/DateTime'
        salesPeriodStartDate:
          $ref: '#/components/schemas/DateTime'
        salesPeriodEndDate:
          $ref: '#/components/schemas/DateTime'
        currency:
          $ref: '#/components/schemas/Currency'
        supplier:
          $ref: '#/components/schemas/Party'
        buyer:
          $ref: '#/components/schemas/Party'
        technicalRecipient:
          description: Used when the recipient of the message differs from the buyer or bill_to party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual buyer or billing party in the transaction.
          allOf:
          - $ref: '#/components/schemas/Party'
        technicalSender:
          description: Used when the sender of the message differs from the supplier party. Common in scenarios where orders or documents are sent from a centralized sen

# --- truncated at 32 KB (169 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/procuros/refs/heads/main/openapi/procuros-incoming-transactions-api-openapi.yml