Total System Services Transactions API

Card transaction history

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.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/total-system-services-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

total-system-services-transactions-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: TSYS Issuing Platform Accounts Transactions API
  description: TSYS Issuing Platform API for financial institutions and fintechs to manage card programs, cardholder accounts, card issuance, spending controls, and transaction history. Part of the Global Payments / TSYS API-driven payment stack.
  version: 1.0.0
  contact:
    name: TSYS Developer Support
    url: https://www.tsys.com/platform
servers:
- url: https://issuing.api.tsys.com/v1
  description: TSYS Issuing Platform Production API
security:
- bearerAuth: []
tags:
- name: Transactions
  description: Card transaction history
paths:
  /cards/{cardId}/transactions:
    get:
      operationId: listCardTransactions
      summary: List Card Transactions
      description: Returns transaction history for a specific card.
      tags:
      - Transactions
      parameters:
      - name: cardId
        in: path
        required: true
        schema:
          type: string
      - name: startDate
        in: query
        schema:
          type: string
          format: date
        description: Start of date range
      - name: endDate
        in: query
        schema:
          type: string
          format: date
        description: End of date range
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Transaction list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssuingTransactionList'
  /transactions/authorize:
    post:
      operationId: authorizeTransaction
      summary: Authorize Transaction
      description: Authorize a credit, debit, or prepaid card transaction without capturing. Returns an authorization code that can be used to capture the transaction later.
      tags:
      - Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizationRequest'
      responses:
        '200':
          description: Authorization response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /transactions/sale:
    post:
      operationId: processSale
      summary: Process Sale
      description: Process a combined authorization and capture (sale) transaction. Charges the card immediately for the full transaction amount.
      tags:
      - Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SaleRequest'
      responses:
        '200':
          description: Sale response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /transactions/{transactionId}/capture:
    post:
      operationId: captureTransaction
      summary: Capture Transaction
      description: Capture a previously authorized transaction for settlement.
      tags:
      - Transactions
      parameters:
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
        description: The transaction ID from the authorization response
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: number
                  format: float
                  description: Amount to capture (must not exceed authorized amount)
      responses:
        '200':
          description: Capture response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
        '404':
          $ref: '#/components/responses/NotFound'
  /transactions/{transactionId}/void:
    post:
      operationId: voidTransaction
      summary: Void Transaction
      description: Void an authorized or captured transaction before settlement.
      tags:
      - Transactions
      parameters:
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
        description: The transaction ID to void
      responses:
        '200':
          description: Void response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
        '404':
          $ref: '#/components/responses/NotFound'
  /transactions/{transactionId}/refund:
    post:
      operationId: refundTransaction
      summary: Refund Transaction
      description: Process a full or partial refund for a settled transaction.
      tags:
      - Transactions
      parameters:
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
        description: The original transaction ID to refund
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: number
                  format: float
                  description: Refund amount (partial or full)
                reason:
                  type: string
                  description: Reason for the refund
      responses:
        '200':
          description: Refund response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionResponse'
        '404':
          $ref: '#/components/responses/NotFound'
  /transactions/{transactionId}:
    get:
      operationId: getTransaction
      summary: Get Transaction
      description: Retrieve the status and details of a specific transaction.
      tags:
      - Transactions
      parameters:
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
        description: Transaction identifier
      responses:
        '200':
          description: Transaction details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
        '404':
          $ref: '#/components/responses/NotFound'
  /transactions:
    get:
      operationId: listTransactions
      summary: List Transactions
      description: Returns a paginated list of transactions for the merchant.
      tags:
      - Transactions
      parameters:
      - name: startDate
        in: query
        schema:
          type: string
          format: date
        description: Filter transactions from this date
      - name: endDate
        in: query
        schema:
          type: string
          format: date
        description: Filter transactions through this date
      - name: status
        in: query
        schema:
          type: string
          enum:
          - authorized
          - captured
          - settled
          - voided
          - refunded
          - declined
        description: Filter by transaction status
      - name: cardType
        in: query
        schema:
          type: string
          enum:
          - visa
          - mastercard
          - amex
          - discover
          - debit
        description: Filter by card type
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
          maximum: 500
      responses:
        '200':
          description: Transaction list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionList'
  /batches/current:
    get:
      operationId: getCurrentBatch
      summary: Get Current Batch
      description: Returns the current open batch with pending settlement totals.
      tags:
      - Transactions
      responses:
        '200':
          description: Current batch details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Batch'
  /batches/current/close:
    post:
      operationId: closeCurrentBatch
      summary: Close Current Batch
      description: Close the current batch and submit it for settlement.
      tags:
      - Transactions
      responses:
        '200':
          description: Batch closed for settlement
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Batch'
components:
  schemas:
    Batch:
      type: object
      properties:
        id:
          type: string
        merchantId:
          type: string
        status:
          type: string
          enum:
          - open
          - closed
          - settled
        transactionCount:
          type: integer
        saleTotal:
          type: number
          format: float
        refundTotal:
          type: number
          format: float
        netTotal:
          type: number
          format: float
        openedAt:
          type: string
          format: date-time
        closedAt:
          type: string
          format: date-time
    IssuingTransactionList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/IssuingTransaction'
        total:
          type: integer
        page:
          type: integer
        limit:
          type: integer
    CardData:
      type: object
      description: Card payment credentials
      properties:
        cardNumber:
          type: string
          description: Tokenized card number (PAN token)
        expirationDate:
          type: string
          description: Card expiration date (MMYY format)
        cvv:
          type: string
          description: Card verification value
        cardholderName:
          type: string
        billingAddress:
          type: object
          properties:
            zip:
              type: string
            street:
              type: string
    TransactionList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Transaction'
        total:
          type: integer
        page:
          type: integer
        limit:
          type: integer
    AuthorizationRequest:
      type: object
      required:
      - amount
      - currency
      - card
      - merchantId
      properties:
        merchantId:
          type: string
          description: TSYS merchant ID
        amount:
          type: number
          format: float
          description: Transaction amount
        currency:
          type: string
          default: USD
          description: ISO 4217 currency code
        card:
          $ref: '#/components/schemas/CardData'
        orderId:
          type: string
          description: Merchant-assigned order identifier
        description:
          type: string
        ipAddress:
          type: string
          description: Customer IP address for fraud detection
    Transaction:
      type: object
      properties:
        id:
          type: string
        merchantId:
          type: string
        orderId:
          type: string
        status:
          type: string
          enum:
          - authorized
          - captured
          - settled
          - voided
          - refunded
          - declined
        amount:
          type: number
          format: float
        settledAmount:
          type: number
          format: float
        currency:
          type: string
        cardType:
          type: string
        lastFour:
          type: string
          description: Last four digits of the card number
        authorizationCode:
          type: string
        batchId:
          type: string
        createdAt:
          type: string
          format: date-time
        settledAt:
          type: string
          format: date-time
    IssuingTransaction:
      type: object
      properties:
        id:
          type: string
        cardId:
          type: string
        type:
          type: string
          enum:
          - purchase
          - refund
          - cash_advance
          - fee
        status:
          type: string
          enum:
          - pending
          - posted
          - declined
        amount:
          type: number
          format: float
        currency:
          type: string
        merchantName:
          type: string
        merchantCategory:
          type: string
        merchantCity:
          type: string
        merchantCountry:
          type: string
        authorizedAt:
          type: string
          format: date-time
        postedAt:
          type: string
          format: date-time
    TransactionResponse:
      type: object
      properties:
        transactionId:
          type: string
        status:
          type: string
        responseCode:
          type: string
        responseMessage:
          type: string
        amount:
          type: number
          format: float
        timestamp:
          type: string
          format: date-time
    SaleRequest:
      allOf:
      - $ref: '#/components/schemas/AuthorizationRequest'
      type: object
      properties:
        captureImmediately:
          type: boolean
          default: true
    AuthorizationResponse:
      type: object
      properties:
        transactionId:
          type: string
        authorizationCode:
          type: string
        status:
          type: string
          enum:
          - approved
          - declined
          - partial
          - error
        responseCode:
          type: string
        responseMessage:
          type: string
        amount:
          type: number
          format: float
        approvedAmount:
          type: number
          format: float
        avsResponse:
          type: string
          description: Address verification response code
        cvvResponse:
          type: string
          description: CVV match response code
        timestamp:
          type: string
          format: date-time
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        transactionId:
          type: string
  responses:
    Unauthorized:
      description: Authentication required or invalid credentials
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT