Release notes - Suppliers API
This page will show the changes made in the suppliers API version 2023v1. The changes are marked with a publish date to staging and production. New changes will be added at the top of the page.
Base URL changes
The base url for 2023v1 has a different format compared to the previous API versions.
Previous versions are indicated with the format suppliers-api/2022v2
.
For the 2023v1 and future versions this has been changed to the format suppliers-api-2023v1
with a dash instead of a forward slash.
Image url validation
2023v1 Introduces a new image url format. The image urls posted as Floriday media must conform to the following format https://image.floriday.io/mediaId.jpg. This has been changed from https://api.floriday.io/images/mediaId.jpg. The new format will skip the gateway and will allow the user to directly fetch the image.
Model names, enums and routes changes
You can find an overview of all name, enums and route changes listed here:
CreditCheckStatus
- Renamed model CreditCheckStatus into CreditClaimStatus
- Renamed property
creditCheckStatus
intocreditClaimStatus
for model SalesOrder - Renamed property
creditCheckStatus
intocreditClaimStatus
for model SalesOrderVersion
Incoterm
- Renamed model IncoTerm to Incoterm
- Renamed property
incoTerm
intoincoterm
for model AddSalesOrderDelivery - Renamed property
incoTerm
intoincoterm
for model DeliveryCondition - Renamed property
incoTerm
intoincoterm
for model EditBlanketOrderLine - Renamed property
incoTerm
intoincoterm
for model EditContract - Renamed property
incoTerm
intoincoterm
for model OrderRequestDelivery - Renamed property
incoTerm
intoincoterm
for model SalesOrderDelivery
Enum changes
- Removed enum value COMMITTED from CorrectionRequestStatus
- Added enum value RFH_E_WALLET to PaymentProvider
- Added enum value FX_SERVICES to PaymentProvider
SelectedPackingConfiguration
- Renamed property
selectedPackingConfiguration
intopackingConfiguration
for model SalesOrderExternalIntegrationRequest and changed the model into SalesOrderPakcingConfigurationCreate - Renamed property
selectedPackingConfiguration
intopackingConfiguration
for model SalesOrderRequest
HiddenFromCustomer
Renamed hiddenFromCustomer
to isHiddenInCatalog
to properly indicate what the property is used for
- Changed optional property
hiddenFromCustomer
into required propertyisHiddenInCatalog
for model TradeItem - Changed optional property
hiddenFromCustomer
into required propertyisHiddenInCatalog
for model TradeItemBase - Changed optional property
hiddenFromCustomer
into required propertyisHiddenInCatalog
for model TradeItemUpdate
ValidationProblemDetails
- Removed property
extensions
- Removed property
instance
- Changed property
errors
from required to optional - Added optional property
domainErrorCode
CustomPackage
- Changed type of property
FallbackVbnPackageCode
in model CustomPackage from string to int
CustomerSticker
- Removed endpoint GetCustomerStickerMetaData
- Renamed endpoint GetCustomerStickers into GetCustomerStickerPdfByIds
- Renamed endpoint GetCustomerStickerById into GetCustomerStickerPdfById
- Renamed endpoint GetCustomerStickerMetadataBySequenceNumber into GetCustomerStickersBySequenceNumber
- Changed route
/customer-stickers/metadata/sync/{sequenceNumber}
from endpoint GetCustomerStickerMetadataBySequenceNumber into/customer-stickers/sync/{sequenceNumber}
- Renamed endpoint GetStickersMaxSequence into GetCustomerStickersMaxSequence
- Changed route
/customer-stickers/metadata/handled
from endpoint SetCustomerStickersIsHandled into/customer-stickers/handled
- Replaced model StickerMetaData with CustomerSticker
- Added property
supplierOrganizationId
- Changed property
Size
from required to optional - Added optional property
additionalServiceId
- Changed optional property
deliveryDateTime
to required - Added optional property
stickerFileInformation
- Added property
- Added new model CustomerStickerFileInformation
- Moved property
uploadLayout
into model CustomerStickerFileInformation as required - Moved property
numberOfPages
into model CustomerStickerFileInformation as required - Moved property
numberOfCopies
into model CustomerStickerFileInformation as required - Moved property
deliverySeparately
into model CustomerStickerFileInformation as required - Moved property
stickerProvidedBy
into model CustomerStickerFileInformation as required - Moved property
shouldBePrinted
into model CustomerStickerFileInformation as required - Moved property
parentId
into model CustomerStickerFileInformation as optional
- Moved property
AdditionalService
- Changed stringLength of property
Name
from 70 to 50
Organization
- Added optional property
LogoUrl
Error handling with domain-error-codes and validation problem details
Replaced the ValidationProblemDetails model with a custom ValidationProblemDetails to remove the unnecessary required extensions
property.
Introduced domain-error-codes in the API for handling the different error responses that are returned by the API.
The errors
property will no longer be used for default errors, instead the message will be placed in the detail
property with a generic message in title
that is linked to the domain-error-code
. The property type
will contain a URI to the developer docs error codes page with the domain error code as anchor e.g. https://developer.floriday.io/docs/error-codes#validation-error
For more information see https://developer.floriday.io/docs/error-codes.
- Removed property
extensions
- Removed property
instance
- Changed property
errors
from required to optional - Added optional property
domainErrorCode
DomainErrorCode - Overview
Added a new endpoint for fetching all the known domain error codes. The DomainErrorCode will contain a code, title and type linking to the developer docs.
- Added GET endpoint GetDomainErrorCodes with the route
/domain-error-codes
AddFulfillmentOrder - DeliveryLocationGln
Added new optional property deliveryLocationGln
to model FulfillmentOrderCreate. By setting the GLN you can group FulfillmentRequests with different GLN in the DeliveryOrder. The GLN must contain the same country code to be valid. See customer-delivery#fulfillment-orders for more information.
- Added optional property
deliveryLocationGln
BundledOffers
Added new endpoints for syncing and creating bundled offers. Added a new property salesOrderGroupId
that will be set when ordering a bundled offer. The group id bundles the sales orders of the same bundled offer.
More information about bundled offers can be found here.
- Added POST AddBundledOffer with the route
/bundled-offers
- Added GET GetBundledOfferById with the route
/bundled-offers/{bundledOfferId}
- Added PUT EditBundledOffer with the route
/bundled-offers/{bundledOfferId}
- Added DELETE DeleteBundledOffer with the route
/bundled-offers/{bundledOfferId}
- Added GET GetBundledOfferByBundledOfferLineId with the route
/bundled-offers/by-bundled-offer-line-id
- Added GET GetBundledOffersMaxSequence with the route
/bundled-offers/current-max-sequence
- Added GET GetBundledOffersBySequenceNumber with the route
/bundled-offers/sync/{sequenceNumber}
- Added optional property
salesOrderGroupId
into SalesOrder
GetLogisticLabelsById - Rate limit
Increased the rate and burst limit for endpoint GetLogisticLabelsById.
- Increased rate limit from 0.3 per second to 0.5 per second.
- Increased burst limit from 5 to 10.
TradeItem - Invalid Floricode data
Added a new property to indicate if the TradeItem contains invalid Floricode data. This can mean that the vbnProductCode
, vbnPackageCode
or the characteristics vbnCode
contains an expired value.
- Added property
hasInvalidFloricodeData
SalesOrder - Additional sticker service
Customer stickers and additional services of type LABEL are now more intertwined within the new release. Customers can only place new customer stickers in combination with an AdditionalService. The model for AdditionalService has been updated to reflect the new flow. A new endpoint has been added to add an AdditionalService to an existing SalesOrder the endpoint will result in a new AdditionalService being added to the SalesOrder and a new CustomerSticker linked to the SalesOrder and AdditionalService. It is possible to add the sticker service without an actual PDF, the PDF can be added later but is not required.
See customer-stickersfor more information about the Additional sticker service flow and business rules.
- Replaced optional property
labelMetaData
and model LabelMetaData with optional propertystickerInformation
and model AdditionalStickerServiceInformation- Changed property
stickerTypes
into a single enum propertystickerType
- Removed property
widthInMm
- Removed property
heightInMm
- Added property
isDefault
- Added property
supportedStickerSizes
- Changed property
- Renamed enum ServiceStickerType into ServiceStickerType
StickerMetaData - Refactor
Renamed, replaced and removed LabelMetaData endpoints, models and properties to support the new workflow with additional sticker services and to be inline with the Suppliers API. It is now possible for CustomerSticker to have an optional PDF see SalesOrder - Additional sticker service
- Removed endpoint GetCustomerStickerMetaData
- Renamed endpoint GetCustomerStickers into GetCustomerStickerPdfByIds
- Renamed endpoint GetCustomerStickerById into GetCustomerStickerPdfById
- Renamed endpoint GetCustomerStickerMetadataBySequenceNumber into GetCustomerStickersBySequenceNumber
- Changed route
/customer-stickers/metadata/sync/{sequenceNumber}
from endpoint GetCustomerStickerMetadataBySequenceNumber into/customer-stickers/sync/{sequenceNumber}
- Renamed endpoint GetStickersMaxSequence into GetCustomerStickersMaxSequence
- Changed route
/customer-stickers/metadata/handled
from endpoint SetCustomerStickersIsHandled into/customer-stickers/handled
- Replaced model StickerMetaData with CustomerSticker
- Added property
supplierOrganizationId
- Changed property
Size
from required to optional - Added optional property
additionalServiceId
- Changed optional property
deliveryDateTime
to required - Added optional property
stickerFileInformation
- Added property
- Added new model CustomerStickerFileInformation
- Moved property
uploadLayout
into model CustomerStickerFileInformation as required - Moved property
numberOfPages
into model CustomerStickerFileInformation as required - Moved property
numberOfCopies
into model CustomerStickerFileInformation as required - Moved property
deliverySeparately
into model CustomerStickerFileInformation as required - Moved property
stickerProvidedBy
into model CustomerStickerFileInformation as required - Moved property
shouldBePrinted
into model CustomerStickerFileInformation as required - Moved property
parentId
into model CustomerStickerFileInformation as optional
- Moved property
CreatedByUser - StringLength and description
- Added a stringLength of 60 to properties
createdByUser
andintendedForCustomerUser
- Added a description for intended to properties
createdByUser
andintendedForCustomerUser
VbnPackageCode - Integer with range
- Changed type of property
FallbackVbnPackageCode
in model CustomPackage from string to int - Added a range from 100 to 999 for property
vbnPackageCode
PackagesPerLayer & LayersPerLoadCarrier - Range
- Added a range from 1 to 9999 for the properties
packagesPerLayer
andlayersPerLoadCarrier
Incoterm validation
Added new validation rules for the correct use of incoterm. See Incoterms for more information on the business rules.
FulfillmentOrderCorrection - DeliveryLocationGln
Added the option to correct the DeliveryLocationGln
in a FulfillmentOrderCorrection
- Added optional property
deliveryLocationGln
to model FulfillmentOrderCorrection
FulfillmentOrderCorrection - PackingAgentOrganizationId
Added the option to correct the packingAgentOrganizationId
in a FulfillmentOrderCorrection
- Added optional property
packingAgentOrganizationId
to model LoadCarrierItemCorrection
DeliveryLocations
Added new endpoints for syncing the customer DeliveryLocation data. The property isDefault
indicates that this is the default location to use when creating new deliveries.
- Added GET GetDeliveryLocationsBySequenceNumber with the route
/delivery-locations/sync/{sequenceNumber}
- Added GET GetDeliveryLocationMaxSequence with the route
/delivery-locations/sync/{sequenceNumber}
SupplyLine - Purchase tip
- Added enum value PURCHASE_TIP for model SupplyLine
SalesOrder - Incoterm corrections
Added the option to correct the incoterm
of a SalesOrder
- Added optional property
incoterm
for model AddSalesOrderCorrectionRequest - Added optional property
incoterm
for model SalesOrderCorrectionRequest - Added optional property
incoterm
for model SalesOrderDelivery - Added optional property
incoterm
for model SalesOrderMutables
Auction - Clock sales from nursery supply lines
Added new endpoints for creating and deleting clock sales from nursery SupplyLines
The newly created supply lines will result in a ClockSupplyLine
- Added POST endpoint AddClockSalesFromNurserySupplyLine with the route
/clock-sales-from-nursery/supply-lines
- Added DELETE endpoint DeleteClockSalesFromNurserySupplyLine with the route
/clock-sales-from-nursery/supply-lines/{clockSalesFromNurserySupplyLineId}
- Added property
isDeleted
into ClockSupplyLine - Removed endpoint GetClockSupplyLines
TradeItem - Name and code validation
The TradeItem Name
and Code
will be validated when adding a new TradeItem
The following characters or format will be marked as invalid:
- \r
- \n
- \t
- Leading whitespace
- Trailing whitespace
- Double whitespace
SalesOrderCorrectionRequest - Created by user name
Added new property createdByUserName
as string in the SalesOrderCorrectionRequest and SalesOrder model as name of the contact person responsible for the sales order or correction
- Added optional property
createdByUserName
for model AddSalesOrderCorrectionRequest - Added optional property
createdByUserName
for model SalesOrderCorrectionRequest - Added optional property
createdByUserName
for model SalesOrder. The user name can only be set by customers
Traylabels by batch or fulfillment order
Added new endpoints to fetch the tray stickers as PDF for a batch or fulfillment order
- Added GET endpoint GetTrayLabelsAsPdfByBatchIds with route
/batches/stickers
- Added GET endpoint GetTrayLabelsAsPdfByFulfillmentOrderId with route
/fulfillment-orders/{fulfillmentOrderId}/stickers
DeliveryOrder - Goods movement
Added a new endpoint to delete an existing delivery order goods movement
- Added DELETE endpoint DeleteDeliveryOrderGoodsMovement with route
/delivery-orders/{deliveryOrderId}/goods-movement
SalesOrder - Sales channel interface
Re-added enum and property salesChannelInterface
into model SalesOrder
- Re-added enum property
salesChannelInterface
Batch - Custom batch reference
Added the option to define your own batchReference
when creating a batch. The option is only usable if a custom batch reference prefix has been set for the supplier organization
- Added optional property
batchReference
for model AddBatch
Batch - Combine and transform batches
Added a new endpoint to combine and transform multiple batches into a new batch with a different packing configuration and/or trade item
- Added POST endpoint CombineAndTransformBatches with the route
/batches/combine-and-transform
FulfillmentRequest - Order picking
Added a new property to the FulfillmentRequest to indicate how many pieces are picked using the picklist orders feature in Floriday
- Added optional property
numberOfPiecesPicked
DeliveryOrder - Order picking
Added a new property to the DeliveryOrder to indicate when order picking has begun using the picklist orders feature in Floriday
- Added optional property
startedOrderPickingAt
InvoiceLines - sync
Changed the InvoiceLine model and sync endpoint to support syncing based on the SyncResult model
- Added property
sequenceNumber
into InvoiceLine - Changed response of GetInvoiceLinesBySequenceNumber from List to SyncResultOfInvoiceLine
TradeItem - Creation- & LastModifiedDateTime
- Added property
creationDateTime
- Added property
lastModifiedDateTime
Removed sequence from GetSupplyLines
Removed the parameter sequence
from endpoint GetSupplyLines
Use the existing sync endpoints when you want to process the supply lines
Batch - Mutations
Added a new endpoint for syncing BatchMutation.
The BatchMutation shows the mutations or movements of a specific Batch and can be used to keep a logistical batch journal
- Added GETendpoint GetBatchMutationsBySequenceNumber with the route
/batches/mutations/sync/{sequenceNumber}
- Added GET endpoint GetBatchMutationsMaxSequence with the route
/batches/mutations/current-max-sequence
TradeItem - season photo validation
Added validation to set the seasonalPeriod
as mandetory in property photos
when using the PhotoType enum SEASON with the error message Not all season photo's have a season period
Paymentprovider - RFH_E_WALLET & FX_SERVICES
Added new enum values to PaymentProvider for Floriday only buyers and FloraXchange services
- Added enum value RFH_E_WALLET
- Added enum value FX_SERVICES
Batch - Transform batch
Added a new endpoint to partially or fully transform an existing batch into a new batch with a different packing configuration and/or trade item
- Added PUT endpoint TransformBatch with the route
/batches/{batchId}/transform
SalesOrder - Credit claim
Renamed the model CreditCheckStatus into CreditClaimStatus and added the optional property creditClaimExpirationDateTime
-
Added optional property
creditClaimExpirationDateTime
for model SalesOrder -
Renamed property
creditCheckStatus
intocreditClaimStatus
for model SalesOrder -
Added optional property
creditClaimExpirationDateTime
for model SalesOrderVersion -
Renamed property
creditCheckStatus
intocreditClaimStatus
for model SalesOrderVersion
Updated about 1 year ago