Ekom.Shipping.IcelandicPost 0.1.1

dotnet add package Ekom.Shipping.IcelandicPost --version 0.1.1
                    
NuGet\Install-Package Ekom.Shipping.IcelandicPost -Version 0.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Ekom.Shipping.IcelandicPost" Version="0.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Ekom.Shipping.IcelandicPost" Version="0.1.1" />
                    
Directory.Packages.props
<PackageReference Include="Ekom.Shipping.IcelandicPost" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Ekom.Shipping.IcelandicPost --version 0.1.1
                    
#r "nuget: Ekom.Shipping.IcelandicPost, 0.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Ekom.Shipping.IcelandicPost@0.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Ekom.Shipping.IcelandicPost&version=0.1.1
                    
Install as a Cake Addin
#tool nuget:?package=Ekom.Shipping.IcelandicPost&version=0.1.1
                    
Install as a Cake Tool

Ekom.Shipping.IcelandicPost

Pósturinn checkout and fulfillment integration for Ekom. The package supports delivery-service pricing, pickup locations, shipment creation and management, labels, tracking, proof of delivery, and PrintNode printing.

Official API documentation

The test environment is documented as available on weekdays from 07:00–19:00. Keys are environment-specific. Authentication uses the x-api-key header; keep the key in application configuration.

Configuration

{
  "Ekom": {
    "Shipping": {
      "IcelandicPost": {
        "Accounts": {
          "post-main": {
            "ApiUrl": "https://api.mobiz.posturinn.is/api/wscm/",
            "ApiKey": "use-a-secret-provider",
            "FulfillmentMode": "Manual",
            "LabelFormat": "Unknown",
            "CacheDuration": "03:00:00"
          }
        }
      }
    }
  }
}

Register with services.AddIcelandicPostShipping(configuration). Set the Ekom shipping provider carrier alias to icelandic-post, its account to the configured account name, and its service to an ID returned by Pósturinn.

FulfillmentMode defaults to Manual. Set it to Automatic to create a shipment from CheckoutEvents.CompleteCheckoutAsync.

Supported API operations

Inject IIcelandicPostShippingService for direct API access:

Operation Method
Rich delivery services and prices GetDeliveryServicesAsync
Provider-neutral delivery services GetServicesAsync
Postboxes GetPostboxesAsync
Parcel points GetParcelPointsAsync
Post offices GetPostOfficesAsync
Create a shipment CreateShipmentAsync
Get a shipment and tracking history GetShipmentAsync
Get current status GetShipmentStatusAsync
Delete a shipment DeleteShipmentAsync
Find shipments by reference GetShipmentsByReferenceAsync
List shipments by date range GetShipmentsAsync
Get one PDF label GetLabelAsync
Get a combined labels PDF GetCombinedLabelsAsync
Get proof-of-delivery JPEG GetProofOfDeliveryAsync
Print through PrintNode PrintAsync
Provider-neutral tracking JSON GetTrackingAsync
var shipment = await post.GetShipmentAsync(
    "post-main",
    "CF083141763IS",
    "IS",
    cancellationToken);

var labels = await post.GetCombinedLabelsAsync(
    "post-main",
    ["CF083141763IS", "CF083141764IS"],
    IcelandicPostLabelFormat.A4Size,
    cancellationToken);

await post.DeleteShipmentAsync(
    "post-main",
    shipment.ShipmentId,
    cancellationToken: cancellationToken);

IcelandicPostShipmentRequest exposes parcels, customs contents, recipient details, return permissions, dimensions, insurance, and other commonly used shipment options. Verify that optional services are supported by the selected delivery service before setting them.

Pickup services

  • Generic DPO and DNO represent postbox selection.
  • DPT represents parcel points.
  • Generic DPP represents post-office selection.
  • Qualified IDs such as DPO1013 and DPP200 identify a carrier-selected destination and are preserved as returned.

The API does not document a reliable conversion from location IDs such as IS101A to qualified delivery-service IDs. The built-in fulfillment mapper therefore rejects generic pickup service IDs instead of inventing a mapping.

Ekom fulfillment

The built-in Ekom mapper intentionally supports domestic, single-parcel shipments only. It does not map purchased order lines to parcels. International automatic fulfillment is rejected because it requires explicit customs content, tariff codes, origin countries, and customs values.

Created shipments use the shared order-manager actions:

  • Print shipping label
  • View shipment JSON
  • Delete shipment

These actions go through IShippingFulfillmentService, keeping state in the order's ShippingProvider.CustomData. Confirmed deletion is retained and is not automatically recreated.

Mutation safety

Pósturinn does not document creation, deletion, or PrintNode calls as idempotent. Ambiguous transport and server outcomes throw ShipmentOutcomeUnknownException. Do not blindly retry them. A merchant reference can return multiple parcel and return IDs, so it is useful for reconciliation but is not treated as an idempotency key.

The built-in per-order lock is process-local. Multi-node sites must provide a distributed order lock before enabling automatic fulfillment.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.1 35 9/12/2026