---
title: "POST transaction"
method: POST
path: "transaction"
---

# POST transaction

`POST transaction` (webhook)

## Payload

- WebhookPayloadTransaction — Content of the webhook posted to the external URL
  - `event` 'transaction_created' | 'transaction_updated' | 'track_updated' | 'batch_created' | 'batch_purchased' | 'all' — Type of event that triggered the webhook.
  - `test` boolean — Determines whether the webhook is a test webhook or not.
  - `data` Transaction
    - `commercial_invoice_url` string — A URL pointing to the commercial invoice as a 8.5x11 inch PDF file. A value will only be returned if the Transactions has been processed successfully and if the shipment is international.
    - `created_by` object, nullable — An object with details about the user who created the Transaction (purchased the label). A value will be returned only for Transactions that can be associated with a specific user, e.g. when a logged-in user purchases a label via the Shippo Web application; but not for Transactions purchased e.g. via the API using a ShippoToken, which is associated with the account but not any specific user.
      - `first_name` string
      - `last_name` string
      - `username` string
    - `eta` string — The estimated time of arrival according to the carrier.
    - `label_file_type` 'PNG' | 'PNG_2.3x7.5' | 'PDF' | 'PDF_2.3x7.5' | 'PDF_4x6' | 'PDF_4x8' | 'PDF_A4' | 'PDF_A5' | 'PDF_A6' | 'ZPLII' — Print format of the <a href="https://docs.goshippo.com/docs/shipments/shippinglabelsizes/">label</a>. If empty, will use the default format set from <a href="https://apps.goshippo.com/settings/labels">the Shippo dashboard.</a>
    - `label_url` string — A URL pointing directly to the label in the format you've set in your settings. A value will only be returned if the Transactions has been processed successfully.
    - `messages` ResponseMessage[]
      - `source` string — Origin of message
      - `code` string — Classification of message
      - `text` string — Message content
    - `metadata` string — A string of up to 100 characters that can be filled with any additional information you want to attach to the object.
    - `object_created` string, date-time — Date and time of Transaction creation.
    - `object_id` string — Unique identifier of the given Transaction object.
    - `object_owner` string — Username of the user who created the Transaction object.
    - `object_state` 'VALID' | 'INVALID' — Indicates the validity of the enclosing object
    - `object_updated` string, date-time — Date and time of last Transaction update.
    - `parcel` string — Object ID of the Parcel object that is being shipped.
    - `qr_code_url` string — A URL pointing directly to the QR code in PNG format. A value will only be returned if requested using qr_code_requested flag and the carrier provides such an option.
    - `rate` union — ID of the Rate object for which a Label has to be obtained. If you purchase a label by calling the transaction endpoint without a rate (instalabel), this field will be a simplified Rate object in the Transaction model returned from the POST request. </br>Note, only rates less than 7 days old can be purchased to ensure up-to-date pricing.
      - CoreRate
        - `amount` string — Final Rate price, expressed in the currency used in the sender's country.
        - `amount_local` string — Final Rate price, expressed in the currency used in the recipient's country.
        - `currency` string — Currency used in the sender's country, refers to `amount`. The <a href="http://www.xe.com/iso4217.php">official ISO 4217</a> currency codes are used, e.g. `USD` or `EUR`.
        - `currency_local` string — Currency used in the recipient's country, refers to `amount_local`. The <a href="http://www.xe.com/iso4217.php">official ISO 4217</a> currency codes are used, e.g. `USD` or "EUR".
        - `object_id` string — Unique identifier of the Rate object.
        - `provider` string — Carrier offering the rate, e.g., `FedEx` or `Deutsche Post DHL`.
        - `carrier_account` string — Object ID of the carrier account that has been used to retrieve the rate.
        - `servicelevel_name` string — Service level name, e.g. `Priority Mail` or `FedEx Ground®`. A service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard), along with other properties. These names vary depending on the provider.<br> See <a href="/shippoapi/public-api/service-levels">Service Levels</a>.
        - `servicelevel_token` string — Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`. See <a href="/shippoapi/public-api/service-levels">servicelevels</a>.
      - string
    - `status` 'WAITING' | 'QUEUED' | 'SUCCESS' | 'ERROR' | 'REFUNDED' | 'REFUNDPENDING' | 'REFUNDREJECTED' — Indicates the status of the Transaction.
    - `test` boolean — Indicates whether the object has been created in test mode.
    - `tracking_number` string — The carrier-specific tracking number that can be used to track the Shipment. A value will only be returned if the Rate is for a trackable Shipment and if the Transactions has been processed successfully.
    - `tracking_status` 'UNKNOWN' | 'PRE_TRANSIT' | 'TRANSIT' | 'DELIVERED' | 'RETURNED' | 'FAILURE' — Indicates the high level status of the shipment.
    - `tracking_url_provider` string — A link to track this item on the carrier-provided tracking website. A value will only be returned if tracking is available and the carrier provides such a service.

## Acknowledgement `200`

The data was successfully received

---

[API](https://skmtc.net/goshippo/apis/shippo-external-api.md) · [All operations](https://skmtc.net/goshippo/apis/shippo-external-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/goshippo/shippo-external-api/revisions/7e1ec201b515/schema)
