Marketplaces / Amazon SP API - Technical Scope / Amazon SP API - Vendor Technical Scope / Amazon SP API Vendor Procurement / Amazon Vendor Procurem...

Amazon Vendor Procurement Get Transaction Status

Summary of Changes: (The purpose of this table is to keep traceability and Product team to highlight the things that were changed into the scope, based on comments or discussions)

Version Date Created / Updated Notes
v1.0 09.02.2024 Bogomil Pavlov First publish
v1.1 08.04.2025 Bogomil Pavlov Update the url
v1.2 05.04.2025 Bogomil Pavlov Additional Logic for feeds

All validations, triggers and standardizations which are not mentioned here are as per

Order management general requirements

https://www.notion.so/threecolts/Order-General-Acknowledgement-6ade536bf32d4980abf6da0349f00d04

Get Transaction

Vendors can use the getTransactionStatus operation to check the status of a POST transaction. When a request is posted to Amazon using certain POST operations in the vendor APIs, such as submitAcknowledgementand `submitInvoice, for example, a successful response contains a transaction ID that uniquely identifies the transaction. Amazon will process the transaction asynchronously, and the final response will be available via the getTransactionStatus` operation.

Thus we want to store the feed in Marketplace Feeds table with the relevant details which later we will read using the Get Transaction API

<v1.2>According to Amazon “The Success status is supported only for Submit Shipment Confirmations and Submit Shipment in NA and EU only. Success is not supported for the operations Acknowledge Order and Submit Invoices. If the transaction status is Processing, and has not updated to Failure after 15 minutes, it indicates the transaction has successfully processed in our systems.” and we will have to build different logic for every feed type when we are reading the transcationId.

Marketplace Feed Type - “Order Acknowledgment”

Since we wont have a successful response for the feed we want to wait 15 minutes from the Marketplace Feed > Submitted Date and after that to read the feed. If the response is with "status": "Processing" we treat this as success

Marketplace Feed Type - “Order Fulfillment”

We want to have a standard logic for this type of feeds and we want to read the feed until we receive "status": "Success" or "status": "Failure"

Marketplace Feed Type - “Order Invoice”

Since we wont have a successful response for the feed we want to wait 15 minutes from the Marketplace Feed > Submitted Date and after that to read the feed. If the response is with "status": "Processing" we treat this as success

Marketplace Feed Type - |Order Fulfillment Confirmation”

We want to have a standard logic for this type of feeds and we want to read the feed until we receive "status": "Success" or "status": "Failure" </v1.2>

API <v1.1>GET [https://sellingpartnerapi-na.amazon.com/](https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/transactions/v1/transactions/20190904190535-eef8cad8-418e-4ed3-ac72-789e2ee6214a)vendor/transactions/v1/transactions/{transactionId}<v1.1>

Doc: https://developer-docs.amazon.com/sp-api/docs/vendor-transaction-status-api-v1-reference#transactionstatus

Sample Request: GET [https://sellingpartnerapi-na.amazon.com](https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/transactions/v1/transactions/20190904190535-eef8cad8-418e-4ed3-ac72-789e2ee6214a)**/vendor/transactions/v1/transactions/**[20190904190535-eef8cad8-418e-4ed3-ac72-789e2ee6214a](https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/transactions/v1/transactions/20190904190535-eef8cad8-418e-4ed3-ac72-789e2ee6214a)

We get the Marketplace Feed > External ID as {transactionId} from the relevant marketplace feed. We want to read all Marketplace Feeds with Marketplace Feed >Status = Processing

Sample Pending Response:

{
    "payload": {
        "transactionStatus": {
            "transactionId": "d7b6f55d-a845-45c8-ab5d-203f9653e429-20250411055435",
            "status": "Processing"
        }
    }
}

When we have "status": "Processing" we do not want to complete the feed but wait for either success or error,

Sample Error Response:

{
    "payload": {
        "transactionStatus": {
            "transactionId": "296a7e9d-b965-4554-a890-c6d8916fc454-20250411061320",
            "status": "Failure",
            "errors": [
                {
                    "code": "AmazonLinkAPI-926003",
                    "message": "Volume information is required for Shipment request<br> User Command Error:  Volume information is required for Shipment request Text:  Volume information is required for Shipment request Output Path: Transmission | RoutingRequest | ShipmentInformation | Volume TargetPath: Transmission | RoutingRequest | ShipmentInformation | Volume<br>",
                    "details": null
                },
                {
                    "code": "AmazonLinkAPI-926003",
                    "message": "Volume information is required for Shipment request<br> User Command Error:  Volume information is required for Shipment request Text:  Volume information is required for Shipment request Output Path: Transmission | RoutingRequest | ShipmentInformation | VolumeUnitOfMeasure TargetPath: Transmission | RoutingRequest | ShipmentInformation | VolumeUnitOfMeasure<br>",
                    "details": null
                }
            ]
        }
    }

Sample Success Response:

{
    "payload": {
        "transactionStatus": {
            "transactionId": "d7b6f55d-a845-45c8-ab5d-203f9653e429-20250411055435",
            "status": "Success"
        }
    }
}
Transaction Status Definition
Failure Transaction has failed.
Processing Transaction is in process.
Success Transaction has completed successfully.

Mapping:

Amazon Field Hemi Field
payload
transactionId N/A
status Marketplace Feed >External Status
errors
code N/A
message Order Error table

Once we get the response we want to mark the feed as “completed”.

Fields which should be updated after successful Get Transaction Status:

Hemi Field Comment
Marketplace Feed > Completed Date Current Time
Marketplace Feed >Status “Completed”

Also we would like to clear all Feed Objects after completion. Apart from the marketplace feed we also need to update the order based on the feed type:

Order Acknowledgement - If the order is successfully acknowledged we want to update the Order > Status = Ready For Shipping and all other fields based on the Order General Acknowledgement

*Order Invoice*- If the order invoice is submitted we want to update Invoice > Status = “Sent” and Invoice > Sent By Integration = “Uploaded”

Order Fulfillment -If the order is successfully shipped we want to update the Order > Status = “Shipped” or “Partially Shipped” and all other fields based on the Order General Shipment

Order Fulfillment Confirmation -If the order is successfully shipped we want to update the Order > Status = “Shipped” or “Partially Shipped” and all other fields based on the Order General Shipment

Limits

Rate (requests per second) Burst
10 20
Is this article helpful?
0 0 0