4D Shipping SDK 2020 .NET Edition
4D Shipping SDK 2020 .NET Edition
Questions / Feedback?

EzShip Component

Properties   Methods   Events   Configuration Settings   Errors  

Allows you to generate a shipping label for any domestic services complete with addresses and barcode.




The EzShip component provides a standardized interface to all 3 supported carriers. This allows you to reduce the code needed to create an application supporting multiple carriers. For more fine grained control over settings specific to individual carriers you may wish to use the component that is specific to the carrier.

Note that this component is only valid for domestic shipments. If you would like to perform international shipments, you will need to use the international component that is specific to the carrier.

Generating a shipping label can be done by calling the GetShipmentLabels method. You will have to specify the package information, ServiceType to be used for shipping this package, origin and destination information, and any other special services you want to associate the shipment (such as Saturday Pickup, Saturday Delivery, etc.).

To use this component, you must set the appropriate Account settings for the specified Provider.

Canada Post Setup and Required Properties

When retrieving shipping labels via Canada Post, the following fields are required:

UserId The login username for your Canada Post account.
Password The login password for you Canada Post account.
AccountNumber The customer number of the owner of the mail (mailed on behalf of customer).
ServiceType The Canada Post delivery service used for shipping the item (NOTE: Only domestic services are supported.).
Company Company name of the corresponding sender.
Phone Phone number of the sender.
Address1 Address line 1 of sender.
City City of sender.
State Province or state of sender.
ZipCode Postal Code from which the parcel will be sent.
Address1 Address line 1 of destination.
City City of destination.
State Province or state of destination.
CountryCode The destination country code.
ZipCode The destination Postal Code. Required when shipping to CA or US. Not required for all other international shipments.
Weight The weight of the parcel in kilograms (e.g. 99.999).

You can optionally set the following fields when requesting rates:

Length Longest dimension (3.1 digits e.g. 999.9 pattern).
Width Second longest dimension (3.1 digits e.g. 999.9 pattern).
Height Shortest dimension (3.1 digits e.g. 999.9 pattern).
PackagingType Specify a specific packaging type (when applicable).

Note: A shipping label will only be retrieved for the first package within Packages, as multiple package shipments are not supported.

After a successful GetShipmentLabels call, the following fields will be populated:

MasterTrackingNumber A unique identifier for the shipment.
TrackingNumber The tracking PIN for the shipment.
ShippingLabel The shipping label data.

The Canada Post URLS are:

Test (Development) https://ct.soa-gw.canadapost.ca
Production https://soa-gw.canadapost.ca

Property List


AccountLogin information for the specified Provider .
FirewallA set of properties related to firewall access.
LabelImageTypeType of image or printer commands the label is to be formatted in.
MasterTrackingNumberTracking number assigned to the whole MPS shipment.
PackagesA collection of packages contained in the shipment.
PayorIdentifies the payor of transportation charges for the requested shipment.
ProviderWhich provider to use.
ProxyA set of properties related to proxy access.
RecipientAddressIdentifies the recipient's address.
RecipientContactIdentifies the recipient's contact info.
SenderAddressIdentifies the sender's address.
SenderContactIdentifies the sender's contact info.
ServiceTypeIdentifies the domestic service to use in a ship request.
ShipDateDate package will be mailed.
ShipmentSpecialServicesContains the collection of special services offered.
SSLCertThe certificate to be used during SSL negotiation.
SSLServerCertThe server certificate for the last established connection.
TimeoutA timeout for the component.
TotalNetChargeThe total net charge applied to the whole shipment (specific to the AccountNumber ).

Method List


ConfigSets or retrieves a configuration setting .
GetShipmentLabelsGenerates a shipping label for all packages in the shipment.

Event List


ErrorInformation about errors during data delivery.
SSLServerAuthenticationFired after the server presents its certificate to the client.
SSLStatusShows the progress of the secure connection.

Configuration Settings


RawRequestContains the complete request sent to the Server.
RawResponseContains the complete response returned by the Server.
XPathUsed to set the XPath within the response from the server.
HasXPathDetermines whether a specific element exists in the document.
XParentThe parent of the current element.
XElementThe name of the current element.
XTextThe text of the current element.
XChildCountThe number of records in the XChild arrays.
XChildElement[i]The name of the indexed child element.
XChildText[i]The text of the indexed child element.
XAttrCountThe number of records in the XAttr arrays.
XAttrName[i]The name of the indexed attribute.
XAttrValue[i]The value of the indexed attribute.
CSPUserKeyCSP end user key.
CSPUserPasswordCSP end user password.
CSPProductIdIdentifies the CSP product.
CSPProductVersionIdentifies the CSP product version.
CanadaGroupIdThe Group ID number (or group name) to place the created shipment when using Canada Post.
CanadaPaymentMethodThe intended payment method when using Canada Post.
CustomerIdUser-assigned number for internal use when using Endicia.
LabelOptionIndicates type of label the USPS Server will return.
EndiciaTestModeControls whether requests are test requests or live requests.
EndiciaInsuranceTypeThe Insurance type when using Endicia.
EndiciaInsuredMailUsed to request Endicia mailpiece insurance.
PostageProviderThe postage provider to use.
TransactionIdThe transaction Id when using Endicia.
CODTotalAmountThe total COD amount.
CODTypeThe total COD amount.
CODLabelThe total COD amount.
CODLabelFileThe total COD amount.
HoldAtLocationPhonePhone number of the FedEx location.
HoldAtLocationAddress1Street Name of the FedEx location.
HoldAtLocationAddress2A specific detail of the FedEx location.
HoldAtLocationAddressFlagsFlag that donates information about the address.
HoldAtLocationCityName of city, town, etc.
HoldAtLocationCountryCodeCountry code of the FedEx location.
HoldAtLocationStateState or province code.
HoldAtLocationZipCodePostal code of the FedEx location.
HoldAtLocationContactCompanyIdentifies the contact company name.
HoldAtLocationContactEmailIdentifies the contact person's email address.
HoldAtLocationContactFirstNameIdentifies the contact person's first name.
HoldAtLocationContactLastNameIdentifies the contact person's last name.
HoldAtLocationContactFaxIdentifies the contact person's fax number.
HoldAtLocationContactPhoneIdentifies the contact person's phone number.
HoldAtLocationContactMiddleInitialIdentifies the contact person's middle initial.
TotalWeightThe total weight of the shipment.
AllowHTTPCompressionThis property enables HTTP compression for receiving data.
AllowNTLMFallbackWhether to allow fallback from Negotiate to NTLM when authenticating.
AppendWhether to append data to LocalFile.
AuthorizationThe Authorization string to be sent to the server.
BytesTransferredContains the number of bytes transferred in the response data.
FollowRedirectsDetermines what happens when the server issues a redirect.
HTTPVersionThe version of HTTP used by the component.
IfModifiedSinceA date determining the maximum age of the desired document.
LogLevelThe level of detail that is logged.
MaxRedirectAttemptsLimits the number of redirects that are followed in a request.
NegotiatedHTTPVersionThe negotiated HTTP version.
OtherHeadersOther headers as determined by the user (optional).
ProxyAuthorizationThe authorization string to be sent to the proxy server.
ProxyAuthSchemeThe authorization scheme to be used for the proxy.
ProxyPasswordA password if authentication is to be used for the proxy.
ProxyPortPort for the proxy server (default 80).
ProxyServerName or IP address of a proxy server (optional).
TransferredDataThe contents of the last response from the server.
TransferredHeadersThe full set of headers as received from the server.
UseChunkedEncodingEnables or Disables HTTP chunked encoding for transfers.
ChunkSizeSpecifies the chunk size in bytes when using chunked encoding.
UsePlatformHTTPClientWhether or not to use the platform HTTP client.
UserAgentInformation about the user agent (browser).
KerberosSPNThe Service Principal Name for the Kerberos Domain Controller.
ConnectionTimeoutSets a separate timeout value for establishing a connection.
FirewallHostName or IP address of firewall (optional).
FirewallPortThe TCP port for the FirewallHost;.
FirewallTypeDetermines the type of firewall to connect through.
LingerWhen set to True, connections are terminated gracefully.
LingerTimeTime in seconds to have the connection linger.
LocalPortThe port in the local host where the component binds.
MaxTransferRateThe transfer rate limit in bytes per second.
TCPKeepAliveDetermines whether or not the keep alive socket option is enabled.
UseIPv6Whether to use IPv6.
UseNTLMv2Whether to use NTLM V2.
TcpNoDelayWhether or not to delay when sending packets.
ReuseSSLSessionDetermines if the SSL session is reused.
SSLCipherStrengthThe minimum cipher strength used for bulk encryption.
SSLEnabledProtocolsUsed to enable/disable the supported security protocols.
SSLIncludeCertChainWhether the entire certificate chain is included in the SSLServerAuthentication event.
SSLProviderThe name of the security provider to use.
SSLSecurityFlagsFlags that control certificate verification.
SSLEnabledCipherSuitesThe cipher suite to be used in an SSL negotiation.
TLS12SignatureAlgorithmsDefines the allowed TLS 1.2 signature algorithms when UseInternalSecurityAPI is True.
TLS12SupportedGroupsThe supported groups for ECC.
TLS13KeyShareGroupsThe groups for which to pregenerate key shares.
TLS13SupportedGroupsThe supported groups for (EC)DHE key exchange.
TLS13SignatureAlgorithmsThe allowed certificate signature algorithms.
AbsoluteTimeoutDetermines whether timeouts are inactivity timeouts or absolute timeouts.
FirewallDataUsed to send extra data to the firewall.
InBufferSizeThe size in bytes of the incoming queue of the socket.
OutBufferSizeThe size in bytes of the outgoing queue of the socket.
UseBackgroundThreadWhether threads created by the component are background threads.
