Ir a contenido
Crea una cuenta o inicia sesión
Aquileo | Logotipo de la documentación de Stripe
/
Pregúntale a la IA
Crear cuentaIniciar sesión
Empezar
Pagos
Ingresos
Plataformas y marketplaces
Gestión del dinero
Recursos para desarrolladores
API y SDKAyuda
ResumenAceptar un pagoActualiza tu integración
Pagos por Internet
ResumenEncuentra tu caso de uso
Utiliza Payment Links
Crear una página de pagos
Crea una integración personalizada con Elements
Desarrolla una integración en la aplicación
Usa Managed Payments
Usar el proceso de compra de Studio
Pagos recurrentes
Pagos en persona
Terminal
    Resumen
    Acepta pagos en persona
    Disponibilidad internacional
    Diseño de la integración
    Selecciona tu lector
    Diseña una integración
    Inicio rápido
    Aplicaciones de ejemplo
    Pruebas
    Configuración de Terminal
    Configura tu integración
    Pagos a múltiples destinatarios con Connect
    Conectarse a un lector
    Aceptar un pago
    Cobrar pagos con tarjeta
    Otros métodos de pago
    Aceptar pagos sin conexión
    Acepta pagos sin programación
    Pagos de pedidos telefónicos o pedidos por correo
    Consideraciones regionales
    Durante el proceso de compra
    Cobrar propinas
    Recopilar y guardar datos de pago para su uso en el futuro
    Autorizaciones flexibles
    Después del proceso de compra
    Reembolsar transacciones
    Solicitar recibos
    Personalizar Checkout
    Mostrar carrito
    Recopilar entradas en pantalla
    Recopilar datos deslizados
    Recopilar datos pulsados para los instrumentos de NFC
    Aplicaciones en dispositivos
    Gestionar lectores
    Pedir, devolver o sustituir lectores
      Presentar una reclamación de garantía
    Registrar lectores
    Gestionar ubicaciones y zonas
    Configurar los lectores
    Monitoriza los lectores
    Referencias
    Referencia de la API JavaScript
    Lectores móviles
    Lectores inteligentes
    Lectores Tap to Pay
    Versiones y soporte del SDK
    Guía de migración de SDK
    Lista de verificación de la implementación
    Fichas de producto del lector de Stripe Terminal
Métodos de pago
Añadir métodos de pago
Gestiona los métodos de pago
Proceso de compra más rápido con Link
Aspectos básicos de las operaciones de pago
Análisis
Saldos y plazos de liquidación
Cumplimiento de la normativa y seguridad
Divisas
Pagos rechazados
Disputas
Protección antifraude de Radar
Transferencias
RecibosReembolsos y cancelaciones
Integraciones avanzadas
Flujos de pagos personalizados
Capacidad adquirente flexible
Pagos fuera de la sesión
Orquestación de varios responsables del tratamiento
Más allá de los pagos
Constituye tu empresa
Criptomonedas
Comercio agéntico
Financial Connections
Climate
Verificar identidades
España
Español (España)
  1. Inicio/
  2. Pagos/
  3. Terminal

Place hardware orders

Learn how to place orders for reader hardware and accessories.

Comprar ahora

Ready to buy? Browse available readers and accessories.

Order pre-certified readers compatible with Stripe Terminal from your Dashboard or using the Stripe API. Purchase readers directly from Stripe so they’re loaded with Stripe’s payment applications and secure encryption keys.

To get started, go to the Readers section in your Dashboard. Click Shop to view available products.

What to buy

First, order a reader and a test card to test your full integration with physical hardware. When your integration is ready, order as many readers as you need.

Not sure which reader you need? See Designing an Integration to choose one for your integration.

You can order up to 10000 of each item in a single order. If you’re interested in volume discounts, you can contact us.

Pricing

The price for each reader varies by country. You can view the most updated pricing in the Dashboard or our device pricing page.

Track and cancel orders

After placing an order, check its status in the Dashboard:

EstatusDefinición
PendingWe’ve received your order and will fulfill it soon. If needed, you can cancel this order in the Dashboard. Orders remain pending for at least 30 minutes.
Ready to shipYour order is being prepared to ship and can no longer be canceled. After the order ships, you must initiate a return to cancel the order. The order becomes Shipped after a tracking number is available.
ShippedOrder placed with our distributor. Tracking information is available on the Order details page.
DeliveredItems have been delivered.
CanceledThe order is canceled.
UndeliverableOne or more of the order’s items couldn’t be delivered.

Self service returns

Self service returns are for orders placed and shipped within specific countries (see countries below). See the information about returns outside of supported self service countries for all other orders.

If you’ve placed an order in the Stripe Dashboard within a country supporting self service and need to return some or all of the items in your order, users with sufficient permission can initiate the return within the Stripe Dashboard. We can accept refunds for orders in original packaging (along with all accessories) within 30 days of the date of purchase. For returns past 30 days, contact Stripe Support.

Going through the flow in the Dashboard produces a return shipping label. After you create the return shipping label, you can drop your package off at a local shipping carrier.

Stripe refunds the payment when our distribution facility receives the package. For credit cards, the process can take up to 10 days for the funds to be returned to the bank account.

Countries supporting self service returns

Selecting the Return items Button

To initiate a Dashboard Return, go to your Hardware Orders and select the order you want to return. After you select the order, click Return items to start the process. The Return items button is available on the Terminal order details page if the hardware order has a status of Shipped or Delivered.

Self Service Returns - Step 1

Confirming the number of units to be returned

When the popup opens, select the number of items you’d like to return for each product in the order (if you have more than one item). We’ll only show the number of items eligible for return. So, if you previously purchased three items and returned one, you’ll only be able to select up to two units to return.

Self Service Returns - Step 2

Calculating the refund amount

The popup displays the amount to be refunded after you select the desired number of items.

Shipping fees are refunded on the first initiated return for a Terminal hardware order. For example, if you bought three readers and then returned one unit through a partial refund, then decided to return another unit, the second Dashboard return shows 0 USD for shipping fees to be refunded because these fees were returned in the first attempt.

Selecting a reason for the return

Next, you need to select a reason for the return from the dropdown menu.

Self Service Returns - Step 4
  • Items arrived defective or broken—Select this option if any of the items received were damaged or defective.
  • I ordered too many devices—Select this option if you ordered too many devices.
  • Device setup is too complicated—Select this option if getting started with Stripe Terminal was too complicated or the product didn’t meet your expectations.
  • Other - Select this option if none of the above options match your use case. A reason is required.

Confirming and exporting the shipping label

After you’ve confirmed the information is correct, select Submit return’—the option to download the shipping label appears after you select it. You can select View UPS Locations to find the nearest drop off location.

Self Service Returns - Step 5

Reembolsos

After the return is processed, you’ll be redirected back to the order details page. You can download the shipping label again from the details page if needed. Stripe issues a refund to the payment method you provided when we receive the return.

Returns outside of supported self service countries

To return a device where self service returns isn’t available, contact support. Go to your order in the Dashboard and click Contact support to automatically send us your order details. We can accept refunds for orders in original packaging (along with all accessories) within 30 days of the date of purchase.

Envío

Stripe works with a distribution partner to fulfill Terminal orders. You can choose standard, express, or priority shipping, depending on the destination country. Hardware must be shipped to physical addresses (not PO boxes).

Large quantity orders

Stripe automatically selects freight shipping for large quantity orders.

If you’re a Connect platform using Terminal, you can ship readers directly to your connected accounts by specifying the destination address during checkout.

Destination countryOrders cutoff timeOrder amount above which signature is requiredExcluded regions and territories for shipping (all P.O. boxes are excluded)
Estados Unidos
11:00am Eastern Time500 USDVirgin Islands and military addresses
Canadá
1:00pm Pacific Time400 CAD–
Austria
11:00am Central European Time400 EUR–
Bélgica
11:00am Central European Time400 EUR–
Bulgaria
11:00am Central European Time400 EUR–
Croatia
11:00am Central European Time400 EUR–
Cyprus
11:00am Central European Time400 EUR–
República Checa
11:00am Central European Time9900 CZK–
Dinamarca
11:00am Central European Time2975 DKK–
Estonia
11:00am Central European Time400 EUR–
Finlandia
11:00am Central European Time400 EUR–
Francia
11:00am Central European Time400 EURSaint-Pierre and Miquelon, Saint Barthélemy, French Southern Territories, Wallis and Futuna, French Polynesia and New Caledonia
Alemania
11:00am Central European Time400 EUR–
Gibraltar
11:00am Central European Time400 EUR–
Greece
11:00am Central European Time400 EUR–
Hungary
11:00am Central European Time155908 HUF–
Irlanda
11:00am Central European Time400 EUR–
Italia
11:00am Central European Time400 EUR–
Latvia
11:00am Central European Time400 EUR–
Liechtenstein
11:00am Central European Time415 CHF–
Lithuania
11:00am Central European Time400 EUR–
Luxemburgo
11:00am Central European Time400 EUR–
Malta
11:00am Central European Time400 EUR–
Países Bajos
11:00am Central European Time400 EURAruba, Curaçao, Sint Maarten, Bonaire, Sint Eustatius, and Saba
Noruega
11:00am Central European Time400 EURSvalbard and Jan Mayen
Portugal
11:00am Central European Time400 EUR–
Romania
11:00am Central European Time1930 RON–
Slovakia
11:00am Central European Time400 EUR–
Slovenia
11:00am Central European Time400 EUR–
España
11:00am Central European Time400 EUR–
Suecia
11:00am Central European Time4315 SEK–
Suiza
11:00am Central European Time400 EUR–
Reino Unido
11:00am Central European Time400 GBPJersey, Guernsey, Isle of Man, and the British Virgin Islands
Australia
11:00am Australian Eastern Time400 AUD–
Hong Kong
11:00am Australian Eastern Time2200 HKD–
Malasia
11:00am Australian Eastern Time1200 MYR–
Nueva Zelanda
11:00am Australian Eastern Time400 NZD–
Singapur
11:00am Australian Eastern Time400 SGD–
Poland
11:30am Central European Time2100 PLN–
Japón
03:30pm Japan Standard Time79000 JPY–

Add tax identification numbers

You can add tax identification numbers in your Terminal settings. Stripe uses tax IDs you provide to apply tax on hardware orders, and includes them in tax invoices and credit notes. Each non-US order generates a tax invoice—you can find them by clicking on the orders listed in hardware orders.

roles y permisos del usuario

The following table shows which user roles can place orders on behalf of their account through the dashboard:

AdministradorDesarrolladorAnalistaEspecialista en TerminalEspecialista de soporteSolo visualización
Place new orders
View list of orders
Cancelar un pedido
Self service return

Use the Hardware Orders API Vista previa

Solicitar acceso

The Terminal Hardware Ordering API is currently in preview. If you’re interested in gaining access, contact your sales representative, and they’ll assess your eligibility.

To qualify for preview access, you must:

  • Have a Stripe Account manager
  • Agree to monthly invoice billing
  • Understand this is a preview—which might require you to make timely updates

The Terminal Hardware Orders API enables you to programmatically purchase Terminal readers and accessories that can be sent directly to your users. Orders are fulfilled by Stripe’s distribution partners, so you don’t have to manage complex logistics and can instead focus on building your in-person payments business.

  • Build an internal tool for your employees, such as store managers, to place orders for hardware
  • Build an e-commerce ordering system for your customers to place orders for Terminal readers and accessories

To create a hardware order using the API, follow these steps:

  1. Retrieve available SKUs
  2. Retrieve available Shipping Methods
  3. (Optional) Preview the order
  4. Create the order

Versión beta privada

You must include a beta header in your API requests with your API version and the current version of the terminal hardware order preview: Stripe-Version: 2026-05-27.dahlia;terminal_hardware_orders_beta=v5

Retrieve SKUs

To render an appropriate product page for users, your integration must request available items from Stripe. Each item is represented as a SKU and includes details about the product, such as the product token and price.

Each SKU is associated with a country: a reader available in the US has a different SKU from the same reader that’s available in Canada. To retrieve SKUs, you must specify the country parameter when making a request to the Hardware Order SKUs endpoint:

Command Line
curl https://api.stripe.com/v1/terminal/hardware_skus?country=US \ -u
sk_test_CGGvfNiIPwLXiDwaOfZ3oX6Y
:
\ -H "Stripe-Version: 2026-05-27.dahlia;terminal_hardware_orders_beta=v5"

Each SKU is also associated with a Hardware Product. Products represent different categories of devices. If you’re building an e-commerce ordering system for your customers, make sure you only show the SKUs for the products that apply for your Terminal integration. For example, if your Terminal integration only uses the BBPOS WisePOS E, don’t make the BBPOS Chipper 2X BT reader available for purchase. To retrieve all BBPOS WisePOS E SKUs, you can specify the optional product parameter when making a request to the Hardware Order SKUs endpoint:

Command Line
curl 'https://api.stripe.com/v1/terminal/hardware_skus?country=US&product=
{{TERMINAL_HARDWARE_PRODUCT_ID}}
'
\ -u
sk_test_CGGvfNiIPwLXiDwaOfZ3oX6Y
:
\ -H "Stripe-Version: 2026-05-27.dahlia;terminal_hardware_orders_beta=v5"

Finally, each SKU is also associated with a Provider. By default this value is set to stripe but you filter for SKUs from a different provider by specifying the optional provider parameter when making a request to the Hardware Order SKUs endpoint. All SKUs and Shipping Methods in an Order must share the same provider.

SKUs availability

SKUs and Products might become obsolete as we replace them with newer hardware. To help you manage planned obsolescence, see the SKU and Product status that indicates which are currently available or unavailable. You can’t create an Order if the SKU status is unavailable.

Additionally, each SKU and Product has an optional unavailable_after field that indicates when it might become unavailable. Because the availabilities of these objects change over time, we recommend using an approach to query them dynamically. You can do this either by making a query before displaying the available objects to your users, or periodically (every day, for example) and caching the results you present to your users.

We don’t recommend hardcoding the tokens for these objects because such an integration requires code changes when a shipping method becomes unavailable. If you don’t perform these changes in time, you might attempt to place orders with unavailable objects, causing errors.

Retrieve shipping methods

Another required object used as an input for creating an order is the Hardware Shipping Method. This object determines the estimated shipping time for your order as well as a portion of the price. You must use a Shipping Method available in country of the shipping address when creating an order.

Like SKUs, each Shipping Method is associated with a country: the shipping methods available in the US might be different from those available in Canada. Each Shipping Method also has a name, which denotes the basic category for this shipping method, as well as a provider. To retrieve Shipping Methods, you must specify the country and can optionally specify the name or provider parameters when making a request to the Hardware Shipping Methods endpoint:

Command Line
curl https://api.stripe.com/v1/terminal/hardware_shipping_methods?country=US \ -u
sk_test_CGGvfNiIPwLXiDwaOfZ3oX6Y
:
\ -H "Stripe-Version: 2026-05-27.dahlia;terminal_hardware_orders_beta=v5"

Like SKUs and Products, Shipping Methods might change over time. To help you manage these changes, each Shipping Method has a status that indicates whether it’s currently available or unavailable. This mechanism works the same way as it does for SKUs and Products, as described above. As with SKUs and Products, we recommend fetching Shipping Methods periodically so your integration doesn’t become out of date.

Preview a hardware order

To preview a hardware order, make a request to Stripe containing the SKUs, quantities, shipping address, and Shipping Method for the order.

Command Line
curl https://api.stripe.com/v1/terminal/hardware_orders/preview \ -u
sk_test_CGGvfNiIPwLXiDwaOfZ3oX6Y
:
\ -H "Stripe-Version: 2026-05-27.dahlia;terminal_hardware_orders_beta=v5" \ --data-urlencode "shipping[name]"="Jenny Rosen" \ --data-urlencode "shipping[address][line1]"="1234 Main Street" \ --data-urlencode "shipping[address][city]"="San Francisco" \ --data-urlencode "shipping[address][state]"=CA \ --data-urlencode "shipping[address][country]"=US \ --data-urlencode "shipping[address][postal_code]"=94111 \ --data-urlencode "shipping[company]"="Rocket Rides" \ --data-urlencode "shipping[phone]"=15555555555 \ --data-urlencode "shipping[email]"="test@example.com" \ --data-urlencode shipping_method=thsm_MfuTjLaPEgXMa4 \ --data-urlencode payment_type=monthly_invoice \ --data-urlencode "hardware_order_items[][terminal_hardware_sku]"=thsku_JokaJ6KpLMlDID \ --data-urlencode "hardware_order_items[][quantity]"=2 \ -G

Previewing an order allows you to perform validation on the order and determine the overall cost of the taxes associated with the order without actually placing it, which you can use for designing an e-commerce checkout page for your customers. Calling the preview endpoint doesn’t actually create an order.

Try to minimize the time between making a request to Preview Hardware Order and Create Hardware Order to reduce the (very unlikely) chance that prices change in the interim. If you’re concerned about this issue you can save the preview and create an order using the same parameters. Then you can compare the saved preview with the order and cancel the order in the event of any changes.

Create a hardware order

To create a Terminal Hardware Order, you can make a Create Hardware Order request to Stripe that looks very similar to the Preview Hardware Order request. Include the SKUs, quantities, shipping address, and Shipping Method for the order in your request.

Command Line
curl https://api.stripe.com/v1/terminal/hardware_orders \ -u
sk_test_CGGvfNiIPwLXiDwaOfZ3oX6Y
:
\ -H "Stripe-Version: 2026-05-27.dahlia;terminal_hardware_orders_beta=v5" \ -d "shipping[name]"="Jenny Rosen" \ -d "shipping[address][line1]"="1234 Main Street" \ -d "shipping[address][city]"="San Francisco" \ -d "shipping[address][state]"="CA" \ -d "shipping[address][country]"="US" \ -d "shipping[address][postal_code]"="94111" \ -d "shipping[company]"="Rocket Rides" \ -d "shipping[phone]"="15555555555" \ -d "shipping[email]"="test@example.com" \ -d "hardware_order_items[][terminal_hardware_sku]"="thsku_JokaJ6KpLMlDID" \ -d "hardware_order_items[][quantity]"="2" \ -d shipping_method="thsm_MfuTjLaPEgXMa4" \ -d payment_type="monthly_invoice"

The below example shows a US phone number. If the phone number provided by shipping.phone parameter is an international phone number, prefix it with an escaped version of the + sign (for example: shipping[phone]="%2B358131234567" instead of shipping[phone]="+358131234567").

The email address provided by the shipping.email parameter receives Stripe-branded update emails when the status of the order changes. Use an email address that you feel comfortable receiving Stripe-branded emails.

Retrieve and query hardware orders

After creating an order, you can Retrieve a Terminal Hardware Order using the following request.

Command Line
curl https://api.stripe.com/v1/terminal/hardware_orders/
{{TERMINAL_HARDWARE_ORDER_ID}}
\ -u
sk_test_CGGvfNiIPwLXiDwaOfZ3oX6Y
:
\ -H "Stripe-Version: 2026-05-27.dahlia;terminal_hardware_orders_beta=v5"

You can also List all Terminal Hardware Orders.

Command Line
curl https://api.stripe.com/v1/terminal/hardware_orders \ -u
sk_test_CGGvfNiIPwLXiDwaOfZ3oX6Y
:
\ -H "Stripe-Version: 2026-05-27.dahlia;terminal_hardware_orders_beta=v5"

Webhooks

You can set up webhook events to be updated about order state transitions. You must add a header version (for example, Stripe-Version: 2026-05-27.dahlia;terminal_hardware_orders_beta=v5) to your webhook endpoints to receive events properly. We support the following webhook events:

  • terminal.hardware_order.created
  • terminal.hardware_order.canceled
  • terminal.hardware_order.ready_to_ship
  • terminal.hardware_order.shipped
  • terminal.hardware_order.delivered
  • terminal.hardware_order.undeliverable

Update a sandbox order status

You can update the status of a terminal hardware order in a sandbox using the following endpoints in the API:

  • /v1/test_helpers/terminal/hardware_orders/:hardware_order/mark_ready_to_ship
  • /v1/test_helpers/terminal/hardware_orders/:hardware_order/ship
  • /v1/test_helpers/terminal/hardware_orders/:hardware_order/deliver
  • /v1/test_helpers/terminal/hardware_orders/:hardware_order/mark_undeliverable

You can only update the status for terminal hardware orders in a sandbox.

Impuestos

Upon order creation, Stripe returns the tax amounts associated with the order. We calculate these amounts based on the tax owed to Stripe for the purchase. If you charge tax to your end users for orders placed using the API, you can calculate the amounts owed to you and convey those amounts to your users. The amounts owed to you might differ from those owed to Stripe.

For Italian Tax Invoices, visit the Italian Tax Portal to view invoices.

Facturas

During preview, Stripe sends monthly invoices for any orders created with the API. You can change the email that receives invoices in the Dashboard.

Shipment tracking

As mentioned in the Shipping section, Stripe works with a distribution partner to fulfill Terminal orders. When our distribution partner gets tracking information for the order it transions to the shipped state. You can set up a webhook endpoint for the terminal.hardware_order.shipped notification to be notified when an order has a tracking number.

Registro de cambios

New carriers

  • Add new values (canada_post, dhl, dpd, and usps) to the Carrier enum field.

v5 (2024-11-25)

  • Add pagination to the List all Terminal Hardware SKUs, List all Terminal Hardware Products, and List all Terminal Hardware Shipping Methods endpoints.
  • Require the country filter for the List all Terminal Hardware SKUs and List all Terminal Hardware Shipping Methods endpoints.

v4 (2023-01-23)

  • Add a new Preview Hardware Order endpoint. Remove draft and expired order statuses. Remove the /v1/terminal/hardware_orders/confirm endpoint and the confirm parameter in the Create Hardware Order endpoint.
  • Add a new TerminalHardwareOrder status called ready_to_ship, which represents a state in which the order is no longer cancelable, but hasn’t yet shipped.
  • Add new API endpoints to update the status of test terminal hardware orders to ready_to_ship, shipped, delivered, and undeliverable.
  • Add a new Hardware Shipping Method object to replace the former object in the shipping_method field, as well as API endpoints for querying and retrieving these new objects.
  • Add a new Hardware Product object to replace the former product_type field, as well as API endpoints for querying and retrieving these new objects.
  • Add a new, dynamic orderable field to the TerminalHardwareSku object, replacing the older max_per_order field.
  • Add status and unavailable_after fields to TerminalHardwareSku, which allow you to determine if and when a SKU becomes unavailable to order. These fields also exist on the new Hardware Shipping Method and Hardware Product objects.
  • If you have webhooks enabled for v3 and v4 under the same mode (that is, both in a testing environment or both live mode) at the same time, then Stripe sends the terminal.hardware_order.shipped webhook twice. We send the terminal.hardware_order.shipped webhook when an order transitions to ready_to_ship and shipped as opposed to only sending it when an order transitions to shipped. Having v3 in live mode and v4 in a testing environment doesn’t cause duplicate webhooks. If you need to have both v3 and v4 active under the same mode at the same time, make sure to update your integration to handle duplicate terminal.hardware_order.shipped webhooks first.
  • Orders that are ready_to_ship in v4 appear as shipped in v3. You might see an order with status shipped in v3 and ready_to_ship in v4 as you’re updating your migration. This happens because the ready_to_ship concept doesn’t exist in v3; the status of these orders doesn’t actually regress.

v3 (2019-04-03) Obsoleto

  • Update Terminal Hardware SKU and the Terminal Hardware Order line item SKU object by removing text fields such as name, description, images, and attributes.
  • Make the shipping_country query parameter in Hardware Order SKUs optional and rename it to country.
  • Add the ability to query SKUs in the API by product_type and country.

v2 (2019-12-20) Obsoleto

  • Update Terminal Hardware Order by turning total_tax_amounts.rate.jurisdiction from a structured object into a string.

v1 (2019-11-20) Obsoleto

  • Initial release
¿Te ha sido útil la página?
SíNo
  • ¿Necesitas ayuda? Ponte en contacto con el equipo de soporte.
  • Chatea con desarrolladores Stripe en Discord.
  • Echa un vistazo a nuestro registro de cambios.
  • ¿Tienes alguna pregunta? Ponte en contacto con el equipo de ventas.
  • ¿LLM? Lee llms.txt.
  • Con tecnología de Markdoc
En esta página