# Spree Commerce documentation: v6.x API Reference Seller API

## Seller API

### API basics

- [Spree Seller API introduction and SDK quick start](https://spreecommerce.org/docs/api-reference/seller-api/introduction.md): Overview of the Spree Seller API — the marketplace seller panel for managing a seller's own catalog, team, stock locations, and onboarding.
- [Authenticate Seller API requests with JWTs and the seller header](https://spreecommerce.org/docs/api-reference/seller-api/authentication.md): Authenticate Spree Seller API requests with a seller-audience JWT and select which seller to act as using the X-Spree-Seller-Id header.
- [Seller API error responses, status codes, and handling](https://spreecommerce.org/docs/api-reference/seller-api/errors.md): Reference for the Spree Seller API error response format, HTTP status codes, and what a 403 versus a 404 means on the seller branch.

### Endpoints

#### Authentication

- [Login](https://spreecommerce.org/docs/api-reference/seller-api/authentication/login.md): Signs a seller in and returns a short-lived JWT access token carrying the `seller_api` audience. The rotatable refresh token is set in an HttpOnly cookie — it is not included in the response body.
- [Refresh token](https://spreecommerce.org/docs/api-reference/seller-api/authentication/refresh-token.md): Exchanges the HttpOnly refresh-token cookie for a new access JWT and a rotated refresh cookie. No request body or Authorization header is required — the cookie alone authenticates the call.
- [Logout](https://spreecommerce.org/docs/api-reference/seller-api/authentication/logout.md): Revokes the refresh-token cookie, ending the seller session.
- [List authentication providers](https://spreecommerce.org/docs/api-reference/seller-api/authentication/list-authentication-providers.md): The sign-in methods this marketplace offers sellers, for the login page to render. Unauthenticated — a login page must be able to ask before anyone has signed in.
- [Look up an invitation](https://spreecommerce.org/docs/api-reference/seller-api/authentication/look-up-an-invitation.md): Reads an invitation from the emailed link, before anyone signs in.
- [Accept an invitation](https://spreecommerce.org/docs/api-reference/seller-api/authentication/accept-an-invitation.md): Accepts the invitation and returns a signed-in seller session, so the new member lands in the panel rather than on a login form.
- [Request password reset](https://spreecommerce.org/docs/api-reference/seller-api/authentication/request-password-reset.md): Requests a password reset email for a seller.
- [Reset password](https://spreecommerce.org/docs/api-reference/seller-api/authentication/reset-password.md): Spends a password reset token (the `token` query param from the emailed link), sets the new password and signs the seller in: the response carries a seller JWT and the rotatable refresh token is set in an HttpOnly cookie, so they land in the panel rather than on a login form.

#### Account

- [Current user](https://spreecommerce.org/docs/api-reference/seller-api/account/current-user.md): The signed-in user, the sellers they may act for, and what they may do on the selected one.
- [Update your account](https://spreecommerce.org/docs/api-reference/seller-api/account/update-your-account.md): Edits the signed-in person's own account — the name and photo their team sees, and the language their panel displays.

#### Countries

- [List countries](https://spreecommerce.org/docs/api-reference/seller-api/countries/list-countries.md): Countries and their states, for the panel's address forms.

#### Delivery Methods

- [List delivery methods](https://spreecommerce.org/docs/api-reference/seller-api/delivery-methods/list-delivery-methods.md): How this seller's goods can ship: the methods they created themselves, plus any the marketplace shares with its sellers.
- [Create a delivery method](https://spreecommerce.org/docs/api-reference/seller-api/delivery-methods/create-a-delivery-method.md): Adds a way for this seller to ship. The method is always the seller's own, whatever the payload says.
- [Retrieve a delivery method](https://spreecommerce.org/docs/api-reference/seller-api/delivery-methods/retrieve-a-delivery-method.md)
- [Retire a delivery method](https://spreecommerce.org/docs/api-reference/seller-api/delivery-methods/retire-a-delivery-method.md)
- [Update a delivery method](https://spreecommerce.org/docs/api-reference/seller-api/delivery-methods/update-a-delivery-method.md): Only the seller's own methods can be changed — a marketplace method shared with sellers is read-only.
- [List the conditions a method can carry](https://spreecommerce.org/docs/api-reference/seller-api/delivery-methods/list-the-conditions-a-method-can-carry.md): The eligibility rules a seller may put on their own method, with the preference schema each form is rendered from.
- [List the ways a method can be priced](https://spreecommerce.org/docs/api-reference/seller-api/delivery-methods/list-the-ways-a-method-can-be-priced.md)

#### Delivery Profiles

- [List delivery profiles](https://spreecommerce.org/docs/api-reference/seller-api/delivery-profiles/list-delivery-profiles.md): The marketplace's delivery profiles — what kind of goods a product is (parcel, digital, pallet), which decides how it can be shipped.

#### Delivery Zones

- [List delivery zones](https://spreecommerce.org/docs/api-reference/seller-api/delivery-zones/list-delivery-zones.md): The marketplace's delivery zones — where its methods may ship to.

#### Onboarding

- [Get onboarding checklist](https://spreecommerce.org/docs/api-reference/seller-api/onboarding/get-onboarding-checklist.md): What this marketplace asks of the seller before it will admit them.
- [Submit for review](https://spreecommerce.org/docs/api-reference/seller-api/onboarding/submit-for-review.md): Says the seller is ready, moving them from `onboarding` to `ready_for_review`.
- [Get a payout account link](https://spreecommerce.org/docs/api-reference/seller-api/onboarding/get-a-payout-account-link.md): A fresh link to wherever the marketplace's payout provider collects what it needs before it will pay this seller. Ask for it when the seller acts: these links are short-lived and single-use. Answers `{ "url": null }` when the provider hosts no onboarding.
- [Submit against a requirement](https://spreecommerce.org/docs/api-reference/seller-api/onboarding/submit-against-a-requirement.md): What the seller says about one requirement: an attestation they tick, a document they upload, a reference they paste.
- [Download a submitted document](https://spreecommerce.org/docs/api-reference/seller-api/onboarding/download-a-submitted-document.md): Streams the file attached to one of this seller's submissions.

#### Policies

- [List policies](https://spreecommerce.org/docs/api-reference/seller-api/policies/list-policies.md): This seller's own policy documents.
- [Create a policy](https://spreecommerce.org/docs/api-reference/seller-api/policies/create-a-policy.md): Publishes one of this seller's policies. `body` accepts HTML and is sanitized before it is stored.
- [Get a policy](https://spreecommerce.org/docs/api-reference/seller-api/policies/get-a-policy.md): Returns one of this seller's policies, by prefixed ID or slug.
- [Delete a policy](https://spreecommerce.org/docs/api-reference/seller-api/policies/delete-a-policy.md): Withdraws one of this seller's policies.
- [Update a policy](https://spreecommerce.org/docs/api-reference/seller-api/policies/update-a-policy.md): Rewrites one of this seller's policies.

#### Product Types

- [List product types](https://spreecommerce.org/docs/api-reference/seller-api/product-types/list-product-types.md): The product types a seller may list a product against.
- [Get a product type](https://spreecommerce.org/docs/api-reference/seller-api/product-types/get-a-product-type.md)

#### Products

- [List products](https://spreecommerce.org/docs/api-reference/seller-api/products/list-products.md): The seller's own catalog — the products they own outright.
- [Create a product](https://spreecommerce.org/docs/api-reference/seller-api/products/create-a-product.md): Creates a product owned by the acting seller.
- [Get a product](https://spreecommerce.org/docs/api-reference/seller-api/products/get-a-product.md): A product the acting seller owns.
- [Delete a product](https://spreecommerce.org/docs/api-reference/seller-api/products/delete-a-product.md): Deletes a product the acting seller owns.
- [Update a product](https://spreecommerce.org/docs/api-reference/seller-api/products/update-a-product.md): Edits a product the acting seller owns.
- [Submit a product for review](https://spreecommerce.org/docs/api-reference/seller-api/products/submit-a-product-for-review.md): Asks the marketplace to put a product on sale. Whether a listing goes live is the operator's decision, so a seller submits it for review rather than setting its status. Only drafts and rejected listings can be submitted.
- [Move a product back to draft](https://spreecommerce.org/docs/api-reference/seller-api/products/move-a-product-back-to-draft.md): Takes a listing down. Withdrawing your own product is not a review decision, so it needs nobody's approval.
- [Archive a product](https://spreecommerce.org/docs/api-reference/seller-api/products/archive-a-product.md): Retires a product the acting seller owns, taking it off sale without deleting it.
- [Submit products for review](https://spreecommerce.org/docs/api-reference/seller-api/products/submit-products-for-review.md): Submits a selection for the marketplace to review. Only drafts and rejected listings can be submitted, so a mixed selection moves what it can: `product_count` is what was submitted, and `skipped_count`, present only when something was skipped, is the rest.
- [Change the status of products](https://spreecommerce.org/docs/api-reference/seller-api/products/change-the-status-of-products.md): Moves a selection to `draft` or `archived`. There is no bulk route onto `active`: a listing goes on sale when the marketplace approves it.
- [Delete products](https://spreecommerce.org/docs/api-reference/seller-api/products/delete-products.md): Deletes a selection of the acting seller's products. Ids outside this seller's catalog are ignored. A product the marketplace refuses to delete is skipped: `product_count` is what was deleted, and `skipped_count`, present only when something was skipped, is the rest.

#### Profile

- [Get profile](https://spreecommerce.org/docs/api-reference/seller-api/profile/get-profile.md): The seller's own record.
- [Update profile](https://spreecommerce.org/docs/api-reference/seller-api/profile/update-profile.md): Edits presentation, contact details and addresses.

#### Stock Locations

- [List stock locations](https://spreecommerce.org/docs/api-reference/seller-api/stock-locations/list-stock-locations.md): Where this seller keeps stock, and so where their returns are sent.
- [Create a stock location](https://spreecommerce.org/docs/api-reference/seller-api/stock-locations/create-a-stock-location.md): Adds a place this seller ships from.
- [Get a stock location](https://spreecommerce.org/docs/api-reference/seller-api/stock-locations/get-a-stock-location.md): A stock location the acting seller owns. An id belonging to another seller — or to the marketplace operator — answers `404`.
- [Update a stock location](https://spreecommerce.org/docs/api-reference/seller-api/stock-locations/update-a-stock-location.md): Edits a stock location the acting seller owns.

#### Team

- [List pending invitations](https://spreecommerce.org/docs/api-reference/seller-api/team/list-pending-invitations.md): Offers nobody has accepted yet, newest first.
- [Get an invitation acceptance link](https://spreecommerce.org/docs/api-reference/seller-api/team/get-an-invitation-acceptance-link.md): The link a colleague opens to join the team. It carries the invitation's token, so the listing never includes it; fetch it when someone asks to copy the link.
- [Resend an invitation](https://spreecommerce.org/docs/api-reference/seller-api/team/resend-an-invitation.md): Sends the invitation email again, for a colleague who never got the first one. An invitation whose window has closed is refused rather than re-sent.
- [Revoke an invitation](https://spreecommerce.org/docs/api-reference/seller-api/team/revoke-an-invitation.md): Withdraws an offer that has not been accepted.
- [List team members](https://spreecommerce.org/docs/api-reference/seller-api/team/list-team-members.md): The people who run this seller.
- [Invite a team member](https://spreecommerce.org/docs/api-reference/seller-api/team/invite-a-team-member.md): Invites a colleague onto this seller's team. They join when they accept, on the same invitation rail — and the same email — the marketplace operator's own invitations use.
- [Remove a team member](https://spreecommerce.org/docs/api-reference/seller-api/team/remove-a-team-member.md): Revokes a member's access, removing every role they hold on this seller.

#### Files

- [Upload a file](https://spreecommerce.org/docs/api-reference/seller-api/files/upload-a-file.md): Accepts a file and returns a `signed_id` to send wherever the file belongs — as a requirement submission's `file_signed_id`, or as `logo_signed_id`, `square_logo_signed_id` or `cover_photo_signed_id` on the profile. The file is attached to nothing at this point; the endpoint that takes the `signed_i…

#### Earnings

- [List balances](https://spreecommerce.org/docs/api-reference/seller-api/earnings/list-balances.md): Where this seller stands with the marketplace, one row per currency they have earned or been paid in: what they have earned (settled transfers, refund reversals included), what has reached them, what the marketplace still owes, and earnings the payout provider has not yet confirmed.
- [List payouts](https://spreecommerce.org/docs/api-reference/seller-api/earnings/list-payouts.md): Settlements to this seller: each one batches the transfers that had accumulated since the last, on the seller's payout schedule. `pending` and `processing` rows are owed; `completed` ones reached the seller's bank. `transfers_count` says how many earnings a settlement covers — list them with `GET /a…
- [Get a payout](https://spreecommerce.org/docs/api-reference/seller-api/earnings/get-a-payout.md): One of this seller's settlements. Another seller's is not found, whatever id is sent.
- [List transfers](https://spreecommerce.org/docs/api-reference/seller-api/earnings/list-transfers.md): What this seller has earned, order by order. A transfer is written when an order is fulfilled — the sale less the marketplace's commission — and a refund writes a negative `refund_reversal` row against it rather than editing it.
- [Get a transfer](https://spreecommerce.org/docs/api-reference/seller-api/earnings/get-a-transfer.md): One of this seller's transfers. Another seller's is not found, whatever id is sent.

#### Claims

- [List claims](https://spreecommerce.org/docs/api-reference/seller-api/claims/list-claims.md): Problems reported on one of this seller's orders.
- [Open a claim](https://spreecommerce.org/docs/api-reference/seller-api/claims/open-a-claim.md): Reports that something went wrong with a delivery, to be put right without necessarily asking for the goods back.
- [Show a claim](https://spreecommerce.org/docs/api-reference/seller-api/claims/show-a-claim.md): One problem reported on one of this seller's orders, with the items it covers and the reason given.
- [Approve a claim](https://spreecommerce.org/docs/api-reference/seller-api/claims/approve-a-claim.md): Accepts that the claim is good.
- [Resolve a claim](https://spreecommerce.org/docs/api-reference/seller-api/claims/resolve-a-claim.md): Puts the claim right: money back, a replacement shipment, or both.
- [Deny a claim](https://spreecommerce.org/docs/api-reference/seller-api/claims/deny-a-claim.md): Turns the claim down.
- [Cancel a claim](https://spreecommerce.org/docs/api-reference/seller-api/claims/cancel-a-claim.md): Withdraws a claim that is no longer needed.
- [List claim reasons](https://spreecommerce.org/docs/api-reference/seller-api/claims/list-claim-reasons.md): What can go wrong with a delivery, as the marketplace defines it.

#### Exchanges

- [List exchanges](https://spreecommerce.org/docs/api-reference/seller-api/exchanges/list-exchanges.md): Goods swapped for different ones on one of this seller's orders.
- [Open an exchange](https://spreecommerce.org/docs/api-reference/seller-api/exchanges/open-an-exchange.md): Swaps goods for different ones.
- [Show an exchange](https://spreecommerce.org/docs/api-reference/seller-api/exchanges/show-an-exchange.md): One exchange on one of this seller's orders, with what is coming back and what goes out in its place.
- [Approve an exchange](https://spreecommerce.org/docs/api-reference/seller-api/exchanges/approve-an-exchange.md): Agrees to the swap, so the customer can send the original goods back.
- [Receive an exchange](https://spreecommerce.org/docs/api-reference/seller-api/exchanges/receive-an-exchange.md): Records the goods coming back. Send the rows that actually arrived for a partial or damaged receipt; omit them to receive everything.
- [Send the replacement](https://spreecommerce.org/docs/api-reference/seller-api/exchanges/send-the-replacement.md): Sends the replacement goods, settling any price difference at the same time — which is why it takes a refund method.
- [Cancel an exchange](https://spreecommerce.org/docs/api-reference/seller-api/exchanges/cancel-an-exchange.md): Withdraws an exchange before the goods come back.

#### Exports

- [Create an export](https://spreecommerce.org/docs/api-reference/seller-api/exports/create-an-export.md): Queues a CSV of this seller's own records.
- [Get an export](https://spreecommerce.org/docs/api-reference/seller-api/exports/get-an-export.md): Reads one of this seller's exports. Poll this until `done` is true, then fetch `download_url`.
- [Download an export](https://spreecommerce.org/docs/api-reference/seller-api/exports/download-an-export.md): Streams the finished CSV.

#### Fulfillments

- [List fulfillments](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/list-fulfillments.md): The parcels this seller owes on one order.
- [Fulfill (ship) a parcel](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/fulfill-ship-a-parcel.md): Marks the parcel shipped.
- [Show a fulfillment](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/show-a-fulfillment.md): One of this seller's parcels: what it holds, where it ships from and how it is tracked.
- [Update tracking](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/update-tracking.md): Adds or corrects the tracking number and its carrier. Can also move the parcel to another of the seller's own stock locations, which quotes its rates again from there, or pick a different one of its quoted rates.
- [Cancel a parcel](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/cancel-a-parcel.md): A parcel this seller is not going to send after all. The goods go back on the shelf and the carrier is stood down.
- [Split a parcel](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/split-a-parcel.md): Moves part of what this parcel holds onto a new one, for goods leaving separately. Answers with every fulfillment on the order, since splitting rewrites more than one.
- [List deliveries](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/list-deliveries.md): The consignments of one of this seller's parcels, one per tracking number, with each carrier status.
- [Add a delivery](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/add-a-delivery.md): Adds a tracked consignment to the parcel: a second box, or a freight number covering several pallets.
- [Show a delivery](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/show-a-delivery.md): One consignment of one of this seller's parcels, with its tracking number and carrier status.
- [Delete a delivery](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/delete-a-delivery.md): Removes a consignment entered by mistake. One that a label created is refused — delete the label instead.
- [Correct a delivery](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/correct-a-delivery.md): Corrects the tracking number, carrier or link. A corrected number starts the carrier journey over.
- [List shipping labels](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/list-shipping-labels.md): Every label bought or uploaded for one of this seller's parcels, refunded ones included.
- [Upload a shipping label](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/upload-a-shipping-label.md): Records a label the seller bought elsewhere. Upload the file with `POST /files` first and send its `signed_id` as `file_signed_id`. Buying a label needs the marketplace's carrier account, so a request without a file is refused.
- [Show a shipping label](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/show-a-shipping-label.md): One label on one of this seller's parcels, with the link to print it.
- [Delete an uploaded label](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/delete-an-uploaded-label.md): Removes a label uploaded by mistake, so the right one can be uploaded in its place. A label the marketplace bought has postage to refund, so only the operator can remove it.
- [Download a shipping label](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/download-a-shipping-label.md): Streams the label file for printing.
- [List tracking carriers](https://spreecommerce.org/docs/api-reference/seller-api/fulfillments/list-tracking-carriers.md): The carriers a tracking number can be pinned to, from the registry — so a carrier an extension adds appears without a client change.

#### Imports

- [List imports](https://spreecommerce.org/docs/api-reference/seller-api/imports/list-imports.md): This seller's product CSV imports, queued or finished. Another seller's imports are never listed.
- [Create an import](https://spreecommerce.org/docs/api-reference/seller-api/imports/create-an-import.md): Starts a product CSV import for this seller. Upload the CSV with `POST /files` (`visibility: 'private'`) and pass the returned `signed_id` as `attachment_signed_id`. On success the import is in the `mapping` state, carrying the auto-assigned column `mappings`; confirm them with `PATCH /imports/{id}/…
- [Get an import](https://spreecommerce.org/docs/api-reference/seller-api/imports/get-an-import.md): One of this seller's imports. Poll it while `status` is `completed_mapping` or `processing`; `completed` and `failed` are final. An id belonging to another seller answers `404`.
- [Delete an import](https://spreecommerce.org/docs/api-reference/seller-api/imports/delete-an-import.md): Deletes one of this seller's imports together with its rows. Products it already created are kept.
- [List import rows](https://spreecommerce.org/docs/api-reference/seller-api/imports/list-import-rows.md): The rows of one of this seller's imports, each with its status and any validation errors.
- [Complete mapping and start processing](https://spreecommerce.org/docs/api-reference/seller-api/imports/complete-mapping-and-start-processing.md): Applies the submitted column mappings, then starts row processing. Omit `mappings` to accept the auto-assigned ones from the create response. Returns 422 when a required field is left unmapped (`details.missing_required_fields`).
- [Retry failed rows](https://spreecommerce.org/docs/api-reference/seller-api/imports/retry-failed-rows.md): Processes the rows that failed again, typically after fixing what they referred to. The import goes back to `processing`; poll `GET /imports/{id}` until it finishes. Returns 422 when the import has no failed rows to retry.
- [Download the uploaded file](https://spreecommerce.org/docs/api-reference/seller-api/imports/download-the-uploaded-file.md): Streams the CSV exactly as the seller uploaded it — a record of what was imported.

#### Orders

- [List orders](https://spreecommerce.org/docs/api-reference/seller-api/orders/list-orders.md): What this seller has sold.
- [Get an order](https://spreecommerce.org/docs/api-reference/seller-api/orders/get-an-order.md): One order, as the seller needs it to pack and post the parcel: the lines with their SKUs, where it ships to, and a fulfillment per parcel.
- [Cancel an order](https://spreecommerce.org/docs/api-reference/seller-api/orders/cancel-an-order.md): Withdraws from an order this seller cannot fulfil, naming a reason from the marketplace's own list.
- [Correct an order address](https://spreecommerce.org/docs/api-reference/seller-api/orders/correct-an-order-address.md): Corrects where the goods go or who the invoice names.
- [Get order notes](https://spreecommerce.org/docs/api-reference/seller-api/orders/get-order-notes.md): The instructions the buyer left, and the seller's own working note.
- [Update order notes](https://spreecommerce.org/docs/api-reference/seller-api/orders/update-order-notes.md): Send only the note that changes: an absent key leaves the other alone, while an empty string clears it.
- [List order cancellation reasons](https://spreecommerce.org/docs/api-reference/seller-api/orders/list-order-cancellation-reasons.md): Why an order was called off, as the marketplace defines it.

#### Package Types

- [List package types](https://spreecommerce.org/docs/api-reference/seller-api/package-types/list-package-types.md): What this seller packs their goods into: the boxes their parcels ship in, the cartons their products are packed into, the pallets a wholesale order leaves on.
- [Create a package type](https://spreecommerce.org/docs/api-reference/seller-api/package-types/create-a-package-type.md): Records a piece of the seller's own packaging. Marking it `default` makes it the box their parcels are quoted with, and demotes whichever of their rows held the flag before — the marketplace's default is a different owner's row and is left alone.
- [Get a package type](https://spreecommerce.org/docs/api-reference/seller-api/package-types/get-a-package-type.md): Returns one package type by prefixed ID — the seller's own, or a marketplace row they may pack into.
- [Delete a package type](https://spreecommerce.org/docs/api-reference/seller-api/package-types/delete-a-package-type.md): Retires one of the seller's own package types. The default box is refused — name another default first, or every parcel silently falls back to the marketplace's box.
- [Update a package type](https://spreecommerce.org/docs/api-reference/seller-api/package-types/update-a-package-type.md): Changes the seller's own packaging. A marketplace row is not theirs to edit and answers 404.

#### Returns

- [List returns](https://spreecommerce.org/docs/api-reference/seller-api/returns/list-returns.md): Goods coming back on one of this seller's orders.
- [Open a return](https://spreecommerce.org/docs/api-reference/seller-api/returns/open-a-return.md): Takes goods back on one of this seller's orders.
- [Show a return](https://spreecommerce.org/docs/api-reference/seller-api/returns/show-a-return.md): One return on one of this seller's orders, with the goods coming back and the reason given.
- [Approve a return](https://spreecommerce.org/docs/api-reference/seller-api/returns/approve-a-return.md): Agrees the goods may come back.
- [Receive a return](https://spreecommerce.org/docs/api-reference/seller-api/returns/receive-a-return.md): Records what actually arrived, and whether it can be sold again.
- [Refund a return](https://spreecommerce.org/docs/api-reference/seller-api/returns/refund-a-return.md): Gives the customer their money back.
- [Cancel a return](https://spreecommerce.org/docs/api-reference/seller-api/returns/cancel-a-return.md): Calls the return off.
- [List return reasons](https://spreecommerce.org/docs/api-reference/seller-api/returns/list-return-reasons.md): Why goods come back, as the marketplace defines it.

#### Tax Identifiers

- [List tax registrations](https://spreecommerce.org/docs/api-reference/seller-api/tax-identifiers/list-tax-registrations.md): The seller's own registrations — the numbers the marketplace's commission invoice is made out to, and what makes EU reverse charge on that fee possible.
- [Add a tax registration](https://spreecommerce.org/docs/api-reference/seller-api/tax-identifiers/add-a-tax-registration.md): `kind` names the regime — `eu_vat`, `gb_vat`, and whatever else a validator is registered for. Any string is accepted; what a kind means is decided by its validator, and a kind nothing is registered for is stored and used as entered.
- [Remove a tax registration](https://spreecommerce.org/docs/api-reference/seller-api/tax-identifiers/remove-a-tax-registration.md)
- [Correct a tax registration](https://spreecommerce.org/docs/api-reference/seller-api/tax-identifiers/correct-a-tax-registration.md): A changed number drops its validation verdict, because that answer was about the old one.
- [Re-check a registration against its registry](https://spreecommerce.org/docs/api-reference/seller-api/tax-identifiers/re-check-a-registration-against-its-registry.md): A registry answers "valid now", so a number verified last year may have been deregistered since. Refused when no registry validator is installed for the kind — core format-checks EU VAT numbers but asks no registry, so a stock install answers 422 here rather than queueing a check nobody can answer.

## OpenAPI Specs

- [seller](/docs/api-reference/seller.yaml)
