Medusa
Store APIAdmin API
Store APIAdmin API
Discord
Twitter
Linkedin
Github
  1. Carts
  • Getting Started
    • Introduction
    • Authentication
    • HTTP Compression
    • Publishable API Key
    • Expanding Fields
    • Selecting Fields
    • Query Parameter Types
    • Pagination
  • Auth
    • Customer Login (JWT)
      POST
    • Customer Login (JWT)
      POST
    • Check if Email Exists
      GET
    • Get Current Customer
      GET
    • Customer Log out
      DELETE
    • Customer Login
      POST
  • Carts
    • Create Payment Sessions
      POST
    • Refresh a Payment Session
      POST
    • Create a Cart
      POST
    • Complete a Cart
      POST
    • Select a Payment Session
      POST
    • Delete a Payment Session
      DELETE
    • Update a Payment Session
      POST
    • Get a Cart
      GET
    • Update a Cart
      POST
    • Add Shipping Method
      POST
    • Update a Line Item
      POST
    • Delete a Line Item
      DELETE
    • Add a Line Item
      POST
    • Calculate Cart Taxes
      POST
    • Remove Discount
      DELETE
  • Customers
    • Request Password Reset
    • Get Saved Payment Methods
    • Add a Shipping Address
    • Update Customer
    • Get a Customer
    • Update a Shipping Address
    • Delete an Address
    • Create a Customer
    • Reset Password
    • List Orders
  • Gift Cards
    • Get Gift Card by Code
  • Orders
    • Claim Order
    • Verify Order Claim
    • Get an Order
    • Look Up an Order
    • Get by Cart ID
  • Order Edits
    • Complete an Order Edit
    • Retrieve an Order Edit
    • Decline an Order Edit
  • Payment Collections
    • Authorize Payment Session
    • Authorize Payment Sessions
    • Refresh a Payment Session
    • Get a PaymentCollection
    • Manage Payment Sessions
    • Create a Payment Session
  • Products
    • Search Products
    • List Products
    • Get a Product
  • Product Variants
    • Get a Product Variant
    • Get Product Variants
  • Product Tags
    • List Product Tags
  • Product Categories
    • List Product Categories
    • Get a Product Category
  • Product Collections
    • Get a Collection
    • List Collections
  • Product Types
    • List Product Types
  • Regions
    • List Regions
    • Get a Region
  • Returns
    • Create Return
  • Return Reasons
    • List Return Reasons
    • Get a Return Reason
  • Shipping Options
    • List for Cart
    • Get Shipping Options
  • Swaps
    • Get by Cart ID
    • Create a Swap
  1. Carts

Complete a Cart

POST
/store/carts/{id}/complete
Carts
Complete a cart and place an order or create a swap, based on the cart's type. This includes attempting to authorize the cart's payment.
If authorizing the payment requires more action, the cart will not be completed and the order will not be placed or the swap will not be created.
An idempotency key will be generated if none is provided in the header Idempotency-Key and added to
the response. If an error occurs during cart completion or the request is interrupted for any reason, the cart completion can be retried by passing the idempotency
key in the Idempotency-Key header.
Request Request Example
Shell
JavaScript
Java
Swift
curl --location -g --request POST '{{BASE_URL}}/store/carts//complete'
Response Response Example
200 - Example 1

Request

Path Params
id
string 
required
The Cart ID.

Responses

🟢200If the payment of the cart was successfully authorized, but requires further action from the customer, the response body will contain the cart with an updated payment session. Otherwise, if the payment was authorized and the cart was successfully complete
application/json
Body
If the cart is completed successfully, this will have the created order or the swap's details, based on the cart's type. Otherwise, it'll be the cart's details.
type
enum<string> 
required
The type of the data property. If the cart completion fails, type will be cart and the data object will be the cart's details. If the cart completion is successful and the cart is used for checkout, type will be order and the data object will be the order's details. If the cart completion is successful and the cart is used for swap creation, type will be swap and the data object will be the swap's details.
Allowed values:
ordercartswap
data
required
The data of the result object. Its type depends on the type field.
One of
id
string 
required
The order's ID
Example:
order_01G8TJSYT9M6AVS5N4EMNFS1EK
display_id
integer 
required
The order's display ID
Example:
2
cart_id
string  | null 
required
The ID of the cart associated with the order
Example:
cart_01G8ZH853Y6TFXWPG5EYE81X63
cart
object  | null 
optional
The details of the cart associated with the order.
customer_id
string 
required
The ID of the customer associated with the order
Example:
cus_01G2SG30J8C85S4A5CHM2S1NS2
customer
object  | null 
optional
The details of the customer associated with the order.
email
string <email>
required
The email associated with the order
billing_address_id
string  | null 
required
The ID of the billing address associated with the order
Example:
addr_01G8ZH853YPY9B94857DY91YGW
shipping_address_id
string  | null 
required
The ID of the shipping address associated with the order
Example:
addr_01G8ZH853YPY9B94857DY91YGW
region_id
string 
required
The ID of the region this order was created in.
Example:
reg_01G1G5V26T9H8Y0M4JNE3YGA4G
tax_rate
number  | null 
required
The order's tax rate
Example:
0
draft_order_id
string  | null 
required
The ID of the draft order this order was created from.
Example:
null
draft_order
object  | null 
optional
The details of the draft order this order was created from.
canceled_at
string <date-time> | null 
required
The date the order was canceled on.
no_notification
boolean  | null 
required
Flag for describing whether or not notifications related to this should be send.
Example:
false
external_id
string  | null 
required
The ID of an external order.
Example:
null
sales_channel_id
string  | null 
optional
The ID of the sales channel this order belongs to.
Example:
null
shipping_total
integer  | null 
optional
The total of shipping
Example:
1000
shipping_tax_total
integer 
optional
The tax total applied on shipping
Example:
1000
raw_discount_total
integer 
optional
The total of discount
Example:
800
discount_total
integer 
optional
The total of discount rounded
Example:
800
tax_total
integer 
optional
The total of tax
Example:
0
item_tax_total
integer  | null 
optional
The tax total applied on items
Example:
0
refunded_total
integer 
optional
The total amount refunded if the order is returned.
Example:
0
total
integer 
optional
The total amount of the order
Example:
8200
subtotal
integer 
optional
The subtotal of the order
Example:
8000
paid_total
integer 
optional
The total amount paid
Example:
8000
refundable_amount
integer 
optional
The amount that can be refunded
Example:
8200
gift_card_total
integer 
optional
The total of gift cards
Example:
0
gift_card_tax_total
integer 
optional
The total of gift cards with taxes
Example:
0
created_at
string <date-time>
required
The date with timezone at which the resource was created.
updated_at
string <date-time>
required
The date with timezone at which the resource was updated.
status
enum<string> 
required
The order's status
Allowed values:
pendingcompletedarchivedcanceledrequires_action
Default:
pending
fulfillment_status
enum<string> 
required
The order's fulfillment status
Allowed values:
not_fulfilledpartially_fulfilledfulfilledpartially_shippedshippedpartially_returnedreturnedcanceledrequires_action
Default:
not_fulfilled
payment_status
enum<string> 
required
The order's payment status
Allowed values:
not_paidawaitingcapturedpartially_refundedrefundedcanceledrequires_action
Default:
not_paid
currency_code
string 
required
The 3 character currency code that is used in the order
Example:
usd
payments
array [object] 
optional
The details of the payments used in the order.
fulfillments
array [object] 
optional
The details of the fulfillments created for the order.
returns
array [object] 
optional
The details of the returns created for the order.
claims
array [object] 
optional
The details of the claims created for the order.
refunds
array [object] 
optional
The details of the refunds created for the order.
swaps
array [object] 
optional
The details of the swaps created for the order.
edits
array [object] 
optional
The details of the order edits done on the order.
idempotency_key
string  | null 
required
Randomly generated key used to continue the processing of the order in case of failure.
metadata
object  | null 
required
An optional key-value map with additional details
Example:
{"car":"white"}
gift_card_transactions
array[object (Gift Card Transaction) {9}] 
optional
The gift card transactions made in the order.
currency
object 
Currency
optional
Currency
billing_address
object 
Address
optional
An address is used across the Medusa backend within other schemas and object types. For example, a customer's billing and shipping addresses both use the Address entity.
shipping_address
object 
Address
optional
An address is used across the Medusa backend within other schemas and object types. For example, a customer's billing and shipping addresses both use the Address entity.
sales_channel
object 
Sales Channel
optional
A Sales Channel is a method a business offers its products for purchase for the customers. For example, a Webshop can be a sales channel, and a mobile app can be another.
shipping_methods
array[object (Shipping Method) {20}] 
optional
The details of the shipping methods used in the order.
region
object 
Region
optional
A region holds settings specific to a geographical location, including the currency, tax rates, and fulfillment and payment providers. A Region can consist of multiple countries to accomodate common shopping settings across countries.
discounts
array[object (Discount) {18}] 
optional
The details of the discounts applied on the order.
gift_cards
array[object (Gift Card) {15}] 
optional
The details of the gift card used in the order.
returnable_items
array[object (Line Item) {42}] 
optional
The details of the line items that are returnable as part of the order, swaps, or claims
items
array[object (Line Item) {42}] 
optional
The details of the line items that belong to the order.
🟠400Client Error or Multiple Errors
🟠404Not Found Error
🟠409Invalid State Error
🟠422Invalid Request Error
🔴500Server Error
Modified at 2023-11-27 13:05:07
Previous
Create a Cart
Next
Select a Payment Session
Built with