Procuros Incoming Transactions API
The Incoming Transactions API from Procuros — 3 operation(s) for incoming transactions.
The Incoming Transactions API from Procuros — 3 operation(s) for incoming transactions.
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