Skip to main content

Calls expected by the purchase fulfillment manager

Important

This integration guide supports physical goods. The physical goods product category is in Early Availability status. Features in Early Availability status are only available in production to a limited number of customers based on fit with specific use cases. For more information about Early Availability status, see Product lifecycle phases. If you would like to use the product capabilities described here during the Early Availability phase, contact your AppDirect technical representative.

The shipping connector needs to implement the following endpoints in order for the physical fulfillment manager (PFM) to communicate with the shipping service.

The PFM calls the shipping connector to verify that the address is valid. If the shipper does not support this feature, this endpoint must return HTTP 501.

note

Because a shipping connector can serve multiple marketplaces, you must include the partner ID to identify which endpoint to use for calls from the shipping connector to the physical fulfillment manager. The Partner ID is a string value that exists in the AppDirect marketplace (it is not specific to the connector). You can obtain the partner ID from the Marketplace Manager of the marketplace that you are connecting

Request details
POST https://{connector:baseUrl}/shipments/v1/{partnerId}/validateAddress

Parameters:

partnerId—the AppDirect marketplace partner ID. You can obtain the partner ID from the Marketplace Manager of the marketplace that you are connecting to.

POST body:

Address object

For examples of address object attributes, see Data objects

HTTP status code:

HTTP statusDescription
200Address is valid
400Bad request data—such as missing data
401Authentication failed
422Invalid address
500Unexpected
501Not implemented. The shipping partner does not support address validation.

Success response payload:

An empty JSON document: {}

Error response payload:
AttributeTypeRequiredDescription
errorCodeStringYStatic string for error code
errorDetailObjectN

Reason that the address is invalid

{
message: 'your.address.is.invalid',
detail: [
{ field: 'addressLine1', message: 'required' },
{ field: 'city', message: 'invalid' },
{ field: 'phone', message: 'invalid.number.format' }
]
}
tagStringYUnique identifier of the received request

Was this page helpful?