Selling Partner API BlogVideos
SP-API DocsDeveloper ConsoleSupport
SP-API DocsDeveloper ConsoleSupport

How to confirm MFN Orders using SP-API

This blog demonstrates the methods used to confirm MFN orders using the Selling Partner API

by Leonardo N., Solutions Architect, Selling Partner Developer Services, and Hina V., Sr. Solutions Architect, Selling Partner Developer Services | June 20, 2023

If you're an Amazon Marketplace seller fulfilling orders yourself as a Merchant Fulfilled Seller (MFN), it is crucial to confirm orders and provide tracking information to customers. In this blog, we'll discuss how to confirm MFN orders using the Selling Partner API.

There are two methods to confirm MFN orders using the Selling Partner API:

  • The POST/orders/v0/orders/{orderId}/shipmentConfirmation operation and
  • The POST_ORDER_FULFILLMENT_DATA or POST_FLAT_FILE_FULFILLMENT_DATA feed type.

Choose the method that fits your needs best and start confirming your MFN orders with ease.

Confirm orders using the POST orders shipmentConfirmation operation

The POST /orders/v0/orders/{orderId}/shipmentConfirmation operation allows you to confirm the shipment of an order by providing the necessary information, such as the carrier name, carrier code, and tracking number.

We recommend that you use the shipmentConfirmation method for its benefits such as synchronous acknowledgments, enhanced error messaging, and more efficient handling of order confirmations. It outperforms relying solely on feeds that contain only a few orders.

To use this operation, provide the orderId of the order that you want to confirm shipment for and the shipment information in the request body. The shipment information includes the carrier name, carrier code, and tracking number.

Here's an example of a POST request body:

POST https://sellingpartnerapi-na.amazon.com/orders/v0/orders/123-1234567-1234567/shipmentConfirmation 
{  
   "marketplaceId": "ATVPDKIKX0DER",  
   "codCollectionMethod": "",  
   "packageDetail": {  
   "packageReferenceId": "123",  
   "carrierCode": "UPS",  
   "carrierName": "UPS",  
   "shippingMethod": "SHIPPING",  
   "trackingNumber": "1Z86V8030385598957",  
   "shipDate": "2022-11-30T16:15:30Z",  
   "shipFromSupplySourceId": "057d3fcc-b750-419f-bbcd-4d340c60c430",  
   "orderItems":[{  
     "orderItemId": "60696125413094",  
     "quantity": 1  
     }]  
   }  
 }

In this example, we're confirming the shipment of an order using UPS as the carrier. We're also providing the shipping method and tracking number.

Once you send the shipment confirmation request, Amazon charges the buyer, credits your seller account, and notifies the buyer that the order is on its way. You can then use the getOrder operation to check the status of the order and confirm shipping.

Confirm orders using the Order Fulfillment feed type

The POST_ORDER_FULFILLMENT_DATA feed type method is best for bulk calls. To confirm an order using the POST_ORDER_FULFILLMENT_DATA feed type, you must end an XML with information about the carrier, shipping method, and tracking number.

Here's an example of what this XML can look like:

<?xml version="1.0" encoding="utf-8"?>
<AmazonEnvelope
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Header>
        <DocumentVersion>1.01</DocumentVersion>
        <MerchantIdentifier>MerchantID</MerchantIdentifier>
    </Header>
    <MessageType>OrderFulfillment</MessageType>
    <Message>
        <MessageID>1</MessageID>
        <OrderFulfillment>
            <AmazonOrderID>7XX-XXXXXXX-XXXXXXX</AmazonOrderID>
            <FulfillmentDate>2023-01-01T01:01:01+00:00</FulfillmentDate>
            <FulfillmentData>
                <CarrierCode>USPS</CarrierCode>
                <ShippingMethod>USPS First Class Mail</ShippingMethod>
                <ShipperTrackingNumber>1234567891011121314</ShipperTrackingNumber>
            </FulfillmentData>
        </OrderFulfillment>
    </Message>
</AmazonEnvelope>

New carriers are constantly being added to the Seller Central UI. If the CarrierCode value of the carrier you wish to use is not mapped into the amzn-base XSD file, use the CarrierCode value of Other and provide the carrier name in the CarrierName field. When you use this method, Amazon will not be able to track package shipping updates.

📘

Include CarrierCode and CarrierName values

When using an unlisted carrier to fulfill orders on Amazon, you must use the CarrierCode attribute with the value of Other and provide the carrier name in the CarrierName field to confirm shipments. Sellers who do not provide this information may experience an increase in their late shipment rate and automatically canceled orders due to unconfirmed shipments.

Once you've created the XML with the necessary information, you can use the POST_ORDER_FULFILLMENT_DATA feed type to prompt Amazon to notify the buyer that the order is on its way.

Conclusion

This blog walked you through the different methods to confirm MFN Orders using Selling Partner API and how to decide which method is best for your intended purpose. It also explained the importance of checking the required fields in the feed.

For more information, refer to:

👍

Have feedback on this post?

If you have questions or feedback on this post, we'd like to hear from you! Please vote and leave a comment using the tools at the bottom of this page.

Subscribe to updates via RSS feed.