Stripe Terminal API
Use Stripe Terminal to accept in-person payments and extend Stripe payments to your point of sale.
Use Stripe Terminal to accept in-person payments and extend Stripe payments to your point of sale.
openapi: 3.0.0
info:
title: Stripe Accounts Account Terminal API
description: This is an object representing a Stripe account. You can retrieve it to see properties on the account like its current requirements or if the account is enabled to make live charges or receive payouts.
contact:
email: dev-platform@stripe.com
name: Stripe Dev Platform Team
url: https://stripe.com
termsOfService: https://stripe.com/us/terms/
version: '2023-10-16'
x-stripeSpecFilename: spec3
servers:
- url: https://api.stripe.com/
security:
- basicAuth: []
- bearerAuth: []
tags:
- name: Terminal
paths:
/v1/terminal/locations:
get:
summary: Stripe List Terminal Locations
description: <p>Returns a list of Location objects.</p>
operationId: GetTerminalLocations
parameters:
- name: ending_before
in: query
required: false
schema:
type: string
maxLength: 5000
- name: limit
in: query
required: false
schema:
type: integer
- name: starting_after
in: query
required: false
schema:
type: string
maxLength: 5000
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
properties:
object:
type: string
enum:
- list
data:
type: array
items:
$ref: '#/components/schemas/terminal.location'
has_more:
type: boolean
url:
type: string
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
post:
summary: Stripe Create Terminal Location
description: <p>Creates a new Location object.</p>
operationId: PostTerminalLocations
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- address
- display_name
properties:
address:
type: object
required:
- country
properties:
city:
type: string
country:
type: string
line1:
type: string
line2:
type: string
postal_code:
type: string
state:
type: string
display_name:
type: string
maxLength: 1000
metadata:
type: object
additionalProperties:
type: string
configuration_overrides:
type: string
maxLength: 5000
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.location'
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
/v1/terminal/locations/{location}:
get:
summary: Stripe Retrieve Terminal Location
description: <p>Retrieves a Location object.</p>
operationId: GetTerminalLocationsLocation
parameters:
- name: location
in: path
required: true
schema:
type: string
maxLength: 5000
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.location'
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
post:
summary: Stripe Update Terminal Location
description: <p>Updates a Location object by setting the values of the parameters passed.</p>
operationId: PostTerminalLocationsLocation
parameters:
- name: location
in: path
required: true
schema:
type: string
maxLength: 5000
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
address:
type: object
display_name:
type: string
maxLength: 1000
metadata:
type: object
additionalProperties:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.location'
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
delete:
summary: Stripe Delete Terminal Location
description: <p>Deletes a Location object.</p>
operationId: DeleteTerminalLocationsLocation
parameters:
- name: location
in: path
required: true
schema:
type: string
maxLength: 5000
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
properties:
id:
type: string
object:
type: string
deleted:
type: boolean
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
/v1/terminal/readers:
get:
summary: Stripe List Terminal Readers
description: <p>Returns a list of Reader objects.</p>
operationId: GetTerminalReaders
parameters:
- name: device_type
in: query
required: false
schema:
type: string
- name: location
in: query
required: false
schema:
type: string
maxLength: 5000
- name: status
in: query
required: false
schema:
type: string
enum:
- offline
- online
- name: ending_before
in: query
required: false
schema:
type: string
maxLength: 5000
- name: limit
in: query
required: false
schema:
type: integer
- name: starting_after
in: query
required: false
schema:
type: string
maxLength: 5000
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
properties:
object:
type: string
enum:
- list
data:
type: array
items:
$ref: '#/components/schemas/terminal.reader'
has_more:
type: boolean
url:
type: string
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
post:
summary: Stripe Create Terminal Reader
description: <p>Creates a new Reader object.</p>
operationId: PostTerminalReaders
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- registration_code
properties:
registration_code:
type: string
maxLength: 5000
label:
type: string
maxLength: 5000
location:
type: string
maxLength: 5000
metadata:
type: object
additionalProperties:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.reader'
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
/v1/terminal/readers/{reader}:
get:
summary: Stripe Retrieve Terminal Reader
description: <p>Retrieves a Reader object.</p>
operationId: GetTerminalReadersReader
parameters:
- name: reader
in: path
required: true
schema:
type: string
maxLength: 5000
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.reader'
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
post:
summary: Stripe Update Terminal Reader
description: <p>Updates a Reader object by setting the values of the parameters passed.</p>
operationId: PostTerminalReadersReader
parameters:
- name: reader
in: path
required: true
schema:
type: string
maxLength: 5000
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
label:
type: string
maxLength: 5000
metadata:
type: object
additionalProperties:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.reader'
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
delete:
summary: Stripe Delete Terminal Reader
description: <p>Deletes a Reader object.</p>
operationId: DeleteTerminalReadersReader
parameters:
- name: reader
in: path
required: true
schema:
type: string
maxLength: 5000
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
properties:
id:
type: string
object:
type: string
deleted:
type: boolean
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
/v1/terminal/configurations:
get:
summary: Stripe List Terminal Configurations
description: <p>Returns a list of Configuration objects.</p>
operationId: GetTerminalConfigurations
parameters:
- name: ending_before
in: query
required: false
schema:
type: string
- name: limit
in: query
required: false
schema:
type: integer
- name: starting_after
in: query
required: false
schema:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
properties:
object:
type: string
enum:
- list
data:
type: array
items:
$ref: '#/components/schemas/terminal.configuration'
has_more:
type: boolean
url:
type: string
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
post:
summary: Stripe Create Terminal Configuration
description: <p>Creates a new Configuration object.</p>
operationId: PostTerminalConfigurations
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
tipping:
type: object
offline:
type: object
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.configuration'
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
/v1/terminal/connection_tokens:
post:
summary: Stripe Create Connection Token
description: <p>Creates a short-lived connection token for use with Stripe Terminal.</p>
operationId: PostTerminalConnectionTokens
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
location:
type: string
maxLength: 5000
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.connection_token'
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/error'
tags:
- Terminal
/v1/terminal/configurations/{configuration}:
delete:
description: <p>Deletes a <code>Configuration</code> object.</p>
operationId: DeleteTerminalConfigurationsConfiguration
parameters:
- in: path
name: configuration
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding: {}
schema:
additionalProperties: false
$ref: '#/components/schemas/DeleteTerminalConfigurationsConfigurationRequest'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/deleted_terminal.configuration'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error_2'
description: Error response.
tags:
- Terminal
get:
description: <p>Retrieves a <code>Configuration</code> object.</p>
operationId: GetTerminalConfigurationsConfiguration
parameters:
- in: path
name: configuration
required: true
schema:
maxLength: 5000
type: string
style: simple
- description: Specifies which fields in the response should be expanded.
explode: true
in: query
name: expand
required: false
schema:
items:
maxLength: 5000
type: string
type: array
style: deepObject
requestBody:
content:
application/x-www-form-urlencoded:
encoding: {}
schema:
additionalProperties: false
$ref: '#/components/schemas/GetTerminalConfigurationsConfigurationRequest'
required: false
responses:
'200':
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/terminal.configuration_2'
- $ref: '#/components/schemas/deleted_terminal.configuration'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error_2'
description: Error response.
tags:
- Terminal
post:
description: <p>Updates a new <code>Configuration</code> object.</p>
operationId: PostTerminalConfigurationsConfiguration
parameters:
- in: path
name: configuration
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
bbpos_wisepos_e:
explode: true
style: deepObject
expand:
explode: true
style: deepObject
offline:
explode: true
style: deepObject
tipping:
explode: true
style: deepObject
verifone_p400:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: '#/components/schemas/PostTerminalConfigurationsConfigurationRequest'
required: false
responses:
'200':
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/terminal.configuration_2'
- $ref: '#/components/schemas/deleted_terminal.configuration'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error_2'
description: Error response.
tags:
- Terminal
/v1/terminal/readers/{reader}/cancel_action:
post:
description: <p>Cancels the current reader action.</p>
operationId: PostTerminalReadersReaderCancelAction
parameters:
- in: path
name: reader
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
expand:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: '#/components/schemas/PostTerminalReadersReaderCancelActionRequest'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.reader_2'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error_2'
description: Error response.
tags:
- Terminal
/v1/terminal/readers/{reader}/process_payment_intent:
post:
description: <p>Initiates a payment flow on a Reader.</p>
operationId: PostTerminalReadersReaderProcessPaymentIntent
parameters:
- in: path
name: reader
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
expand:
explode: true
style: deepObject
process_config:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: '#/components/schemas/PostTerminalReadersReaderProcessPaymentIntentRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.reader_2'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error_2'
description: Error response.
tags:
- Terminal
/v1/terminal/readers/{reader}/process_setup_intent:
post:
description: <p>Initiates a setup intent flow on a Reader.</p>
operationId: PostTerminalReadersReaderProcessSetupIntent
parameters:
- in: path
name: reader
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
expand:
explode: true
style: deepObject
process_config:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: '#/components/schemas/PostTerminalReadersReaderProcessSetupIntentRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.reader_2'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error_2'
description: Error response.
tags:
- Terminal
/v1/terminal/readers/{reader}/refund_payment:
post:
description: <p>Initiates a refund on a Reader</p>
operationId: PostTerminalReadersReaderRefundPayment
parameters:
- in: path
name: reader
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
expand:
explode: true
style: deepObject
metadata:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: '#/components/schemas/PostTerminalReadersReaderRefundPaymentRequest'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.reader_2'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error_2'
description: Error response.
tags:
- Terminal
/v1/terminal/readers/{reader}/set_reader_display:
post:
description: <p>Sets reader display to show cart details.</p>
operationId: PostTerminalReadersReaderSetReaderDisplay
parameters:
- in: path
name: reader
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
cart:
explode: true
style: deepObject
expand:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: '#/components/schemas/PostTerminalReadersReaderSetReaderDisplayRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/terminal.reader_2'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error_2'
description: Error response.
tags:
- Terminal
components:
schemas:
PostTerminalReadersReaderCancelActionRequest:
type: object
properties:
expand:
description: Specifies which fields in the response should be expanded.
items:
maxLength: 5000
type: string
type: array
error:
type: object
properties:
error:
type: object
properties:
type:
type: string
message:
type: string
code:
type: string
param:
type: string
DeleteTerminalConfigurationsConfigurationRequest:
type: object
properties: {}
GetTerminalConfigurationsConfigurationRequest:
type: object
properties: {}
terminal.location_2:
description: 'A Location represents a grouping of readers.
Related guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations)'
properties:
address:
$ref: '#/components/schemas/address'
configuration_overrides:
description: The ID of a configuration that will be used to customize all readers in this location.
maxLength: 5000
type: string
display_name:
description: The display name of the location.
maxLength: 5000
type: string
id:
description: Unique identifier for the object.
maxLength: 5000
type: string
livemode:
description: Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
type: boolean
metadata:
additionalProperties:
maxLength: 500
type: string
description: Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
type: object
object:
description: String representing the object's type. Objects of the same type share the same value.
enum:
- terminal.location
type: string
required:
- address
- display_name
- id
- livemode
- metadata
- object
title: TerminalLocationLocation
type: object
x-expandableFields:
- address
x-resourceId: terminal.location
terminal.reader_2:
description: 'A Reader represents a physical device for accepting payment details.
Related guide: [Connecting to a reader](https://stripe.com/docs/terminal/payments/connect-reader)'
properties:
action:
anyOf:
- $ref: '#/components/schemas/terminal_reader_reader_resource_reader_action'
description: The most recent action performed by the reader.
nullable: true
device_sw_version:
description: The current software version of the reader.
maxLength: 5000
nullable: true
type: string
device_type:
description: Type of reader, one of `bbpos_wisepad3`, `stripe_m2`, `bbpos_chipper2x`, `bbpos_wisepos_e`, `verifone_P400`, or `simulated_wisepos_e`.
enum:
- bbpos_chipper2x
- bbpos_wisepad3
- bbpos_wisepos_e
- simulated_wisepos_e
- stripe_m2
- verifone_P400
type: string
id:
description: Unique identifier for the object.
maxLength: 5000
type: string
ip_address:
description: The local IP address of the reader.
maxLength: 5000
nullable: true
type: string
label:
description: Custom label given to the reader for easier identification.
maxLength: 5000
type: string
livemode:
description: Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
type: boolean
location:
anyOf:
- maxLength: 5000
type: string
- $ref: '#/components/schemas/terminal.location_2'
description: The location identifier of the reader.
nullable: true
x-expansionResources:
oneOf:
- $ref: '#/components/schemas/terminal.location_2'
metadata:
additionalProperties:
maxLength: 500
type: string
description: Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
type: object
object:
description: String representing the object's type. Objects of the same type share the same value.
enum:
- terminal.reader
type: string
serial_number:
description: Serial number of the reader.
maxLength: 5000
type: string
status:
description: The networking status of the reader.
maxLength: 5000
nullable: true
type: string
required:
- device_type
- id
- label
- livemode
- metadata
- object
- serial_number
title: TerminalReaderReader
type: object
x-expandableFields:
- action
- location
x-resourceId: terminal.reader
PostTerminalReadersReaderSetReaderDisplayRequest:
type: object
required:
- type
properties:
cart:
description: Cart
properties:
currency:
type: string
line_items:
items:
properties:
amount:
type: integer
description:
maxLength: 5000
type: string
quantity:
type: integer
required:
- amount
- description
- quantity
title: line_item
type: object
type: array
tax:
type: integer
total:
type: integer
required:
- currency
- line_items
- total
title: cart
type: object
expand:
description: Specifies which fields in the response should be expanded.
items:
maxLength: 5000
type: string
type: array
type:
description: Type
enum:
- cart
type: string
PostTerminalReadersReaderProcessSetupIntentRequest:
type: object
required:
- customer_consent_collected
- setup_intent
properties:
customer_consent_collected:
description: Customer Consent Collected
type: boolean
expand:
description: Specifies which fields in the response should be expanded.
items:
maxLength: 5000
type: string
type: array
process_config:
description: Configuration overrides
properties: {}
title: process_setup_config
t
# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/stripe/refs/heads/main/openapi/stripe-terminal-api-openapi.yml