Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/teya-transactions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Teya FX Captures Transactions API
version: 1.0.0
description: The Teya FX API allows you to fetch the latest exchange rates for currency pairs and perform Dynamic Currency Conversion (DCC). Use this API to verify card eligibility, retrieve real-time exchange rates, and create DCC offers with persisted quotes.
servers:
- url: https://api.teya.com
description: Production Server
- url: https://api.teya.xyz
description: Development Server
tags:
- description: Transactions
name: Transactions
x-displayName: Transactions
paths:
/v3/transactions/online:
post:
description: 'API to process an online transaction v3.
<br><strong>Access Token Required scope:</strong> transactions/online/create
'
operationId: processOnlineTransactionV3
parameters:
- description: 'A unique key to identify the request.
If the request is repeated with the same key, the same response will be returned.
If the request is repeated with a different key or without a key, a new transaction will be created.
'
in: header
name: Idempotency-Key
required: true
schema:
description: 'A unique key to identify the request.
If the request is repeated with the same key, the same response will be returned.
If the request is repeated with a different key or without a key, a new transaction will be created.
'
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Ecommerce_Transaction_Payments_-_Public_ProcessTransactionRequestV2'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Ecommerce_Transaction_Payments_-_Public_ProcessTransactionResponseV2'
description: New transaction has been created and processed by host
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/Ecommerce_Transaction_Payments_-_Public_ProcessTransactionResponseV2'
description: New transaction has been created and still being processed (for example waiting for 3ds challenge to be completed)
'400':
content: {}
description: Bad request due to wrong input
'401':
content: {}
description: Unauthorized request because of missing or invalid authentication token
'403':
content: {}
description: Forbidden request due to lack of permissions
'409':
content: {}
description: Request is already being processed
'422':
content: {}
description: Can not process the request because of an idempotency conflict
'500':
content: {}
description: Internal Server Error
security:
- Ecommerce_Transaction_Payments_-_Public_oauth: []
summary: Process an online transaction v3
tags:
- Transactions
/v2/transactions/online/{authentication_id}:
get:
description: 'API to return details of a given online transaction by its authentication id.
<br><strong>Access Token Required scope:</strong> transactions/online/id/get
'
operationId: getOnlineTransactionV2
parameters:
- description: The authentication id
in: path
name: authentication_id
required: true
schema:
description: The unique identifier for the new transaction by its authentication id
example: 5f7b1a3a-3b7a-4b1a-9b1a-3a3b7a4b1a9b
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Ecommerce_Transaction_Payments_-_Public_OnlineTransaction'
description: Transaction has been returned
'400':
content: {}
description: Bad request due to wrong input
'401':
content: {}
description: Unauthorized request because of missing or invalid authentication token
'403':
content: {}
description: Forbidden request due to lack of permissions
'404':
content: {}
description: Transaction not found
'500':
content: {}
description: Internal Server Error
security:
- Ecommerce_Transaction_Payments_-_Public_oauth: []
summary: Get an online transaction
tags:
- Transactions
/v3/refunds:
post:
tags:
- Transactions
summary: Process a refund of a transaction
description: 'API to process the refund of a previous transaction.
<br><strong>Access Token Required scope:</strong> refunds/create
'
operationId: refunds
parameters:
- name: Idempotency-Key
in: header
description: 'A unique key to identify the request. If the request is repeated with the same key, the same response will be returned.
If the request is repeated with a different key or without a key, a new refund will be created.
'
required: false
schema:
type: string
description: 'A unique key to identify the request. If the request is repeated with the same key, the same response will be returned.
If the request is repeated with a different key or without a key, a new refund will be created.
'
maxLength: 64
minLength: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RefundRequest'
required: true
responses:
'201':
description: Refund processed
content:
application/json:
schema:
$ref: '#/components/schemas/RefundResponse'
'202':
description: Refund processing
'400':
description: Bad Request
content: {}
'401':
description: Unauthorised
content: {}
'403':
description: Forbidden
content: {}
'404':
description: Not Found
content: {}
'409':
description: Conflict
content: {}
'460':
description: Challenge Required
content: {}
'500':
description: Internal Server Error
content: {}
'503':
description: Service Unavailable
content: {}
'523':
description: Origin Unavailable
content: {}
security:
- Payments_Refunds_Wrapper_API_oauth_dev: []
- Payments_Refunds_Wrapper_API_oauth_prd: []
/v1/transactions/{transaction_id}/receipts:
post:
tags:
- Transactions
summary: Create a digital receipt for a transaction
description: 'API to allow merchants to request the generation of a digital receipt for a transaction.
<br><strong>Access Token Required scope:</strong> transactions/id/receipts/create
'
operationId: createReceipt
parameters:
- name: transaction_id
in: path
description: Transaction id whose receipt we want to generate
required: true
schema:
type: string
description: Transaction id whose receipt we want to generate
example: 5f7b1a3a-3b7a-4b1a-9b1a-3a3b7a4b1a9b
example: 5f7b1a3a-3b7a-4b1a-9b1a-3a3b7a4b1a9b
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Teya_Digital_Receipts_Service_CreateReceiptRequest'
required: true
responses:
'202':
description: Receipt successfully enqueued for generation
content:
application/json:
schema:
$ref: '#/components/schemas/Teya_Digital_Receipts_Service_CreateReceiptResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Teya_Digital_Receipts_Service_Error'
example:
code: BAD_REQUEST
description: Bad Request
'401':
description: Lacks valid authentication credentials for the requested resource
content:
application/json:
schema:
$ref: '#/components/schemas/Teya_Digital_Receipts_Service_Error'
example:
code: UNAUTHORISED
description: Unauthorised
'403':
description: The server understands the request but refuses to authorise it
content:
application/json:
schema:
$ref: '#/components/schemas/Teya_Digital_Receipts_Service_Error'
example:
code: FORBIDDEN
description: Forbidden
'429':
description: Too many requests in a given amount of time
content:
application/json:
schema:
$ref: '#/components/schemas/Teya_Digital_Receipts_Service_Error'
example:
code: TOO_MANY_REQUESTS
description: Too Many Requests
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Teya_Digital_Receipts_Service_Error'
example:
code: INTERNAL_SERVER_ERROR
description: Internal Server Error
/v1/transactions/{id}/capture:
post:
tags:
- Transactions
summary: Capture a pre-auth
description: API to process a pre-auth capture
operationId: captureRequest
parameters:
- name: id
in: path
description: 'A unique key to identify the request. If the request is repeated with the same key, the same response will be returned.
If the request is repeated with a different key or without a key, a new transaction will be created.
'
required: true
schema:
type: string
description: 'A unique key to identify the request. If the request is repeated with the same key, the same response will be returned.
If the request is repeated with a different key or without a key, a new transaction will be created.
'
maxLength: 64
minLength: 1
- name: Idempotency-Key
in: header
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CaptureRequest'
required: true
responses:
'201':
description: Capture processed
content:
application/json:
schema:
$ref: '#/components/schemas/CaptureResponse'
'202':
description: Capture processing
content:
application/json:
schema:
$ref: '#/components/schemas/CaptureResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- oauth: []
/v1/transactions/moto:
post:
tags:
- Transactions
summary: Process a mail order or telephone order transaction
description: API to process a transaction where card details are entered by the merchant via a virtual terminal
operationId: motoTransactions
parameters:
- name: Idempotency-Key
in: header
description: 'A unique key to identify the request. If the request is repeated with the same key, the same response will be returned.
If the request is repeated with a different key or without a key, a new transaction will be created.
'
required: false
schema:
type: string
description: 'A unique key to identify the request. If the request is repeated with the same key, the same response will be returned.
If the request is repeated with a different key or without a key, a new transaction will be created.
'
maxLength: 64
minLength: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MotoTransactionRequest'
required: true
responses:
'201':
description: Transaction processed
content:
application/json:
schema:
$ref: '#/components/schemas/MotoTransactionResponse'
'202':
description: Transaction processing
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'522':
description: Transaction not processed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'523':
description: Transaction failed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- oauth: []
/v1/transactions/card-present:
post:
tags:
- Transactions
summary: Process a transaction with card present
description: API to process a transaction with a physical or virtual card present at a payment terminal
operationId: cardTransactions_2
parameters:
- name: Idempotency-Key
in: header
description: 'A unique key to identify the request. If the request is repeated with the same key, the same response will be returned.
If the request is repeated with a different key or without a key, a new transaction will be created.
'
required: false
schema:
type: string
description: 'A unique key to identify the request. If the request is repeated with the same key, the same response will be returned.
If the request is repeated with a different key or without a key, a new transaction will be created.
'
maxLength: 64
minLength: 1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionRequest'
required: true
responses:
'201':
description: Transaction processed
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionResponse'
'202':
description: Transaction processing
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'523':
description: Origin Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- oauth: []
components:
schemas:
RefundResponse:
type: object
description: A response to refund a transaction
example:
transaction_id: tr_87de9bea-b32d-4ef5-a481-b8ba48764325
refund_amount:
amount: 100
currency: GBP
card_acceptor_id: '5023045'
status: SUCCESS
issuer_result:
approval_code: '123456'
response_code: '00'
created_at: '2021-01-01T00:00:00.000Z'
dcc:
cardholder_amount:
amount: 100
currency: CHF
conversion_rate: '0.9517'
markup: '0.03'
ecb_markup: '0.01'
properties:
transaction_id:
type: string
description: Unique identifier of the refund created
status:
type: string
description: The status of the transaction
enum:
- SUCCESS
- FAILURE
- PENDING
status_reason:
type: string
description: Reason for `FAILURE` status
enum:
- ACCOUNT_INVALID
- CANNOT_VALIDATE_AUTHENTICATION
- CARD_COUNT_EXCEEDED
- CARD_DECLINED
- CARD_EXPIRED
- CARD_LIMIT_EXCEEDED
- CARD_NOT_ACTIVE
- DISABLED_ACCOUNT
- DO_NOT_HONOR
- ECOM_NEGATIVE_CARD_AUTHENTICATION_VERIFICATION
- EXCEEDS_AMOUNT_LIMIT
- FORMAT_ERROR
- INCORRECT_CARD_AUTHENTICATION
- INSUFFICIENT_FUNDS
- INVALID_CARD_NUMBER
- INVALID_TRANSACTION
- ISSUER_DECLINED
- LOST_OR_STOLEN
- MERCHANT_CONFIGURATION
- PIN_LIMIT_EXCEEDED
- PROCESSOR_UNAVAILABLE
- RESTRICTED_CARD
- SCA_PIN_REQUIRED
- SCA_REQUIRED
- SUSPECTED_FRAUD
- TEMPORARY_ISSUE_RETRY
- TIMEOUT
- TRANSACTION_NOT_ALLOWED
- UNABLE_TO_ROUTE_TRANSACTION
- UNSUPPORTED_ISSUER
- NEGATIVE_BALANCE_LIMIT
- OTHER
issuer_result:
$ref: '#/components/schemas/Payments_Refunds_Wrapper_API_RefundIssuerResult'
description: Result data for the refund according to issuer's response
title: IssuerResult
created_at:
type: string
format: date-time
description: The date and time the refund was created (in ISO 8601 with time-zone).
refund_amount:
$ref: '#/components/schemas/Payments_Refunds_Wrapper_API_Amount'
description: A positive integer representing the total amount refunded in the smallest currency unit (e.g., 100 cents to charge $1)
title: Amount
card_acceptor_id:
type: string
description: '`mid` or `card_acceptor_id` (ISO 8583 field standard).
Used to unique identify the merchant in the transaction.
'
dcc:
$ref: '#/components/schemas/Payments_Refunds_Wrapper_API_DccResponse'
description: DCC data used for the refund
title: DCC
required:
- card_acceptor_id
- issuer_result
- refund_amount
- status
- transaction_id
title: RefundResponse
Teya_Digital_Receipts_Service_CreateReceiptRequest:
type: object
description: Request to initiate creation of digital receipts
example:
country_code: GB
language: en-GB
recipient_phone_numbers:
- '+123456789'
- '+987654321'
recipient_emails:
- johndoe@mail.com
- examplemail@email.com
properties:
country_code:
type: string
description: Country code (ISO 3166 format)
example: HU
language:
type: string
description: 'The language to be used to generate the receipt.
It should follow BCP-47 https://www.rfc-editor.org/info/bcp47 format.
If provided using the wrong format, the request will be rejected. If not provided, the receipt will be generated using the default language of the merchant.
'
example: en-GB
recipient_phone_numbers:
type: array
description: List of phone numbers to send the receipt link to
items:
type: string
description: List of phone numbers to send the receipt link to
example: '+123456789'
recipient_emails:
type: array
description: List of emails to send the receipt link to
items:
type: string
description: List of emails to send the receipt link to
example: email@example.com
receipt_email_type:
type: string
default: CUSTOMER
description: Type that indicates which email template to use
required:
- country_code
title: CreateReceiptRequest
Ecommerce_Transaction_Payments_-_Public_ProcessTransactionResponseV2:
description: The response for a transaction request
example:
online_transaction:
authentication_id: 5f7b1a3a-3b7a-4b1a-9b1a-3a3b7a4b1a9b
created_at: '2022-03-01T15:29:59Z'
issuer_result:
approval_code: '123456'
response_code: '00'
status: SUCCESS
token_response:
token_id: 5f7b1a3a-3b7a-4b1a-9b1a-3a3b7a4b1a9b
token_status: SUCCESS
transaction_id: 5f7b1a3a-3b7a-4b1a-9b1a-3a3b7a4b1a9b
updated_at: '2022-03-01T15:35:00Z'
type: ONLINE_TRANSACTION
properties:
online_transaction:
$ref: '#/components/schemas/Ecommerce_Transaction_Payments_-_Public_OnlineTransaction'
redirect_transaction_response:
$ref: '#/components/schemas/Ecommerce_Transaction_Payments_-_Public_RedirectTransactionResponse'
type:
enum:
- ONLINE_TRANSACTION
- REDIRECT_TRANSACTION_RESPONSE
type: string
title: ProcessTransactionResponseV2
type: object
CaptureIssuerResult:
type: object
description: Issuer result data for capture transactions
properties:
approval_code:
type: string
description: Approval code from the issuer
example: '123456'
response_code:
type: string
description: Response code from the issuer
example: '00'
original_network_response_code:
type: string
description: Original network response code
example: '00'
title: CaptureIssuerResult
IssuerResult:
type: object
description: Result data from the issuer
properties:
approval_code:
type: string
description: Approval code from the issuer
example: '123456'
response_code:
type: string
description: Response code from the issuer
example: '00'
original_network_response_code:
type: string
description: Original network response code
example: '00'
emv_response:
type: string
description: Hex-encoded EMV response data returned by the issuer, in TLV format
example: 9F2608F8E8D9F2701809F101307010103A0A800010A01
title: IssuerResult
PinBlock:
type: object
description: PIN block data
properties:
block:
type: string
description: Encrypted PIN block
example: 1234567890ABCDEF
format:
type: string
description: PIN block format
enum:
- ISO_FORMAT_0
- ISO_FORMAT_1
- ISO_FORMAT_3
example: ISO_FORMAT_0
encryption_key_id:
type: string
description: Key identifier used for encryption
example: 74FF
encryption_ksn:
type: string
description: Key serial number for encryption
example: '123456789012'
required:
- block
- format
- encryption_key_id
- encryption_ksn
title: PinBlock
DccRequest:
type: object
description: Dynamic Currency Conversion request
properties:
quoted_at:
type: string
format: date-time
description: When the DCC rate was quoted
example: '2024-01-01T10:00:00.000Z'
cardholder_amount:
$ref: '#/components/schemas/Amount'
description: Amount in cardholder's currency
required:
- quoted_at
- cardholder_amount
title: DccRequest
TerminalData:
type: object
description: Terminal specific data for transactions
properties:
entry_mode_extra_capabilities:
type: array
description: Additional entry mode capabilities
items:
type: string
enum:
- CONTACTLESS_EMV
- CONTACTLESS_MAGSTRIPE
example:
- CONTACTLESS_EMV
cvm_extra_capabilities:
type: array
description: Additional cardholder verification method capabilities
items:
type: string
enum:
- CONSUMER_DEVICE
- BIOMETRIC
example:
- CONSUMER_DEVICE
title: TerminalData
Ecommerce_Transaction_Payments_-_Public_CustomerContact:
description: Customer contact details
example:
phone_number: '+34610123456'
email: john.doe@example.com
properties:
phone_number:
description: Customer's phone number
example: '+34610123456'
type: string
email:
description: Customer's email address
example: john.doe@example.com
type: string
title: CustomerContact
type: object
Teya_Digital_Receipts_Service_CreateReceiptResponse:
type: object
description: Creates a url for customers to view their receipt.
example:
receipt_id: 01916f63-c6e0-75a9-9ef4-764ba287b2c6
transaction_id: 60cca1c7-38c5-4218-ba71-fb4a96836619
url: https://receipts.teya.com/01916f63-c6e0-75a9-9ef4-764ba287b2c6
properties:
receipt_id:
type: string
format: uuid
description: Id of the created receipt
transaction_id:
type: string
description: Transaction id, the same as in the request
url:
type: string
description: Url for receipt or error page in case or receipt generation failure
required:
- receipt_id
- transaction_id
- url
title: CreateReceiptResponse
Ecommerce_Transaction_Payments_-_Public_IssuerResult:
description: Result data for the transaction according to issuer's response
example:
approval_code: '123456'
response_code: '00'
properties:
approval_code:
description: Identifier of the authorisation returned by the issuer. When the transaction is not authorised, this field is empty
type: string
response_code:
description: Response code returned by the issuer, indicating the result of the operation as per ISO-8583 (https://en.wikipedia.org/wiki/ISO_8583#Ver_1987)
type: string
title: IssuerResult
type: object
RefundRequest:
type: object
description: A request to refund a transaction
example:
transaction_id: tr_87de9bea-b32d-4ef5-a481-b8ba48764325
amount: 100
properties:
transaction_id:
type: string
description: The id of the original transaction that needs to be refunded
minLength: 1
merchant_reference:
type: string
description: An ID referencing the transaction on the client's side
maxLength: 30
minLength: 1
amount:
type: integer
format: int64
description: A positive integer representing the total amount to refund in the smallest currency unit (e.g., 100 cents to charge $1). The currency is the same as the original transaction.
required:
- amount
- transaction_id
title: RefundRequest
Ecommerce_Transaction_Payments_-_Public_BrowserData:
description: Browser information transmitted during the authentication request process to enhance verification accuracy.
example:
accept_language: en-GB,en;q=0.9,pt;q=0.8,pt-PT;q=0.7,nl;q=0.6
ip_address: 192.16.1.1
screen_height: 1080
screen_width: 1920
user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.1234.0 Safari/537.36
properties:
accept_language:
description: User preferred language from the browser
type: string
ip_address:
description: IP address of the browser
type: string
screen_height:
description: Screen height of the browser
format: int32
type: integer
screen_width:
description: Screen width of the browser
format: int32
type: integer
user_agent:
description: User agent of the browser
type: string
required:
- ip_address
- screen_height
- screen_width
title: BrowserData
type: object
Ecommerce_Transaction_Payments_-_Public_PaymentMethod:
example:
card:
cvc: '123'
expiry_month: '02'
expiry_year: '2030'
number: '4111111111111111'
type: CARD
properties:
apple_pay_authentication_data:
$ref: '#/components/schemas/Ecommerce_Transaction_Payments_-_Public_ApplePayAuthenticationData'
description: Apple Pay Authentication Data
card:
$ref: '#/components/schemas/Ecommerce_Transaction_Payments_-_Public_Card'
description: Card payment method
token:
$ref: '#/components/schemas/Ecommerce_Transaction_Payments_-_Public_Token'
description: Token for saved payment method
type:
description: Payment method type
enum:
- CARD
- TOKEN
- APPLE_PAY
format: enum
type: string
required:
- type
title: PaymentMethod
type: object
RequestedAmounts:
type: object
example:
amount: 100
tip: 10
currency: USD
properties:
amount:
type: integer
format: int64
description: 'A positive integer representing the total amount to be charged to the customer in the smallest currency unit (e.g., 100 cents to charge $1).
Note that tip amount is included in this total
'
tip:
type: integer
format: int64
description: A positive integer representing the total amount that was tipped in the smallest currency unit (e.g., 100 cents to charge $1).
minimum: 0
currency:
# --- truncated at 32 KB (76 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/teya/refs/heads/main/openapi/teya-transactions-api-openapi.yml