GuidesChangelog
HomeLog In
Guides
These docs are for v2023.1. Click to read the latest docs for v2024.2.

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 into creditClaimStatus for model SalesOrder
  • Renamed property creditCheckStatus into creditClaimStatus for model SalesOrderVersion

Incoterm

  • Renamed model IncoTerm to Incoterm
  • Renamed property incoTerm into incoterm for model AddSalesOrderDelivery
  • Renamed property incoTerm into incoterm for model DeliveryCondition
  • Renamed property incoTerm into incoterm for model EditBlanketOrderLine
  • Renamed property incoTerm into incoterm for model EditContract
  • Renamed property incoTerm into incoterm for model OrderRequestDelivery
  • Renamed property incoTerm into incoterm 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 into packingConfiguration for model SalesOrderExternalIntegrationRequest and changed the model into SalesOrderPakcingConfigurationCreate
  • Renamed property selectedPackingConfiguration into packingConfiguration for model SalesOrderRequest

HiddenFromCustomer
Renamed hiddenFromCustomer to isHiddenInCatalog to properly indicate what the property is used for

  • Changed optional property hiddenFromCustomer into required property isHiddenInCatalog for model TradeItem
  • Changed optional property hiddenFromCustomer into required property isHiddenInCatalog for model TradeItemBase
  • Changed optional property hiddenFromCustomer into required property isHiddenInCatalog 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 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

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, vbnPackageCodeor 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 property stickerInformation and model AdditionalStickerServiceInformation
    • Changed property stickerTypes into a single enum property stickerType
    • Removed property widthInMm
    • Removed property heightInMm
    • Added property isDefault
    • Added property supportedStickerSizes
  • 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 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

CreatedByUser - StringLength and description

  • Added a stringLength of 60 to properties createdByUser and intendedForCustomerUser
  • Added a description for intended to properties createdByUser and intendedForCustomerUser

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 and layersPerLoadCarrier

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 into creditClaimStatus for model SalesOrder

  • Added optional property creditClaimExpirationDateTime for model SalesOrderVersion

  • Renamed property creditCheckStatus into creditClaimStatus for model SalesOrderVersion