Go-live checklist

Work through this checklist before you switch your integration to production. When you're done, contact integrations@helthjem.no to request production credentials.

Authentication

  • The client_secret is stored securely on your server, never in client-side code or a repository.
  • The access token is cached and reused, not requested for every call.
  • The token is refreshed before it expires, and on a 401 response.

See Authentication.

Checkout

  • You only show delivery options that are confirmed by Single Address Check, or you use a fallback transport solution.
  • A no.carrier.support response hides that option instead of showing an error.
  • Address checks are not sent on every keystroke.
  • Parcel weight and size are within the limits of the freight products you offer.

Booking

  • Every booking request sends a unique idempotency-key, stored before the request is sent.
  • Timeouts and 5xx errors are retried with the same idempotency-key and exponential backoff.
  • 400 errors are logged with their errorKey and are not retried unchanged.
  • desiredDeliveryDate is sent in YYYYMMDD format.
  • zipCode is sent as a string, so leading zeros are kept.
  • phone1 and email are filled in for the recipient, so they receive notifications.
  • You store shipmentId, trackingReference and freightProductId from the booking response.
  • You can cancel a booking when an order is cancelled.

See Book a parcel, Idempotency & retries and Units & formats.

Labels

  • Labels print correctly at 102 × 192 mm, or at 4 × 9 inches for ZPL.
  • The label is fetched only after a successful booking response.
  • Custom labels only: your label design has been approved by Helthjem.
  • PostNord labels only: the 0x1D separator is removed from the mission code before it is turned into a barcode.
  • Labelless products only: the returnCode and instructions are shown to the sender.

See Generate a label and the Label guide.

Tracking

  • Tracking events are mapped to customer-facing states by apiKey, not by description text.
  • Unknown event codes and new fields are handled without errors.
  • Polling stops when a parcel reaches a final state.

See Tracking and Rate limits.

Switch to production

  • Base URL changed to https://api.helthjem.no.
  • Production client_id, client_secret and shopId in place.
  • One real end-to-end test completed: book, print label, track.
  • Error logging and alerting is in place.
Last updated