Dojo Transactions API

Allows you to take and manage payments.

Operations 1

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/dojo-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

dojo-transactions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Transactions API
  version: '2023-11-12'
  description: "# Introduction\nThe Dojo Transaction API is RESTful. It returns HTTP response codes to indicate errors. It also\naccepts and returns JSON in the HTTP body.\n\n## Base URLs\nUse the following base URL when making requests to the API:  https://api.dojo.tech/\n\n## Authentication\nThe Transaction API uses [Basic HTTP auth](https://en.wikipedia.org/wiki/Basic_access_authentication). You can generate API keys in [Developer Portal](https://developer.dojo.tech).\nSecret keys for the test environment have the prefix `sk_sandbox_` and for production have the prefix `sk_prod_`.\nYou must include your secret API key in the header of all requests, for example:\n\n```curl\ncurl\n  --header 'content-type: application/json' \\\n  --header 'Authorization: Basic sk_prod_your_key' \\\n...\n```\n\nAPI requests without authentication will fail.\n\n## HTTP Responses\n\nThe API returns standard HTTP response codes [RFC 7231](https://tools.ietf.org/html/rfc7231#section-6) on each request to indicate the success or otherwise of API requests. HTTP status codes summary are listed below:\n* `200 OK`—The request was successful.\n* `201 Created`—The request was successful, and a new resource was created as a result.\n* `204 No Content`—The request was successful, but there is no content to send.\n* `400 Bad Request`—Bad request, probably due to a syntax error.\n* `401 Unauthorized`—Authentication required.\n* `403 Forbidden`—The API key doesn't have permissions.\n* `404 Not Found`—The resource doesn't exist.\n* `405 Method Not Allowed`—The request method is known by the server but isn't supported by the target resource.\n* `409 Conflict`—The request couldn't be completed because it conflicted with another request or the server's configuration.\n* `500`, `502`, `503`, `504` `Server Errors`—An error occurred with our API.\n\n## Errors\n\nDojo follows the error response format proposed in [RFC 7807](https://tools.ietf.org/html/rfc7807) also known as Problem Details for HTTP APIs. All errors are returned in the form of JSON.\n\n### Error Schema\n\nIn case of an error, the response object contains the following fields:\n* `errors` [object]—A human-readable explanation of errors.\n* `type` [string]—\nA URI reference RFC 3986 that identifies the problem type.\n* `title` [string]—A short, human-readable summary of the error.\n* `status` [integer]—The HTTP status code.\n* `detail` [string]—A human-readable message giving more details about the error. Not always present.\n* `traceId` [string]—The unique identifier of the failing request.\nThe following example shows a possible error response:\n\n```json\n{\n    \"errors\": {\n        \"Reference\": [\n            \"The Reference field is required.\"\n        ]\n    },\n    \"type\": \"https://tools.ietf.org/html/rfc7231#section-6.5.1\",\n    \"title\": \"One or more validation errors occurred.\",\n    \"status\": 400,\n    \"traceId\": \"00-a405f077df056a498323ffbcec05923f-aa63e6f4dbbc734a-01\",\n}\n```\n\n## Versioning\n\nDojo APIs use the yyyy-mm-dd API version-naming scheme. You have to pass the version as the `version` header in all API calls, for example:\n\n``` curl\ncurl\n  --header 'content-type: application/json' \\\n  --header 'Authorization: Basic sk_prod_your_key' \\\n  --header 'version: 2023-11-12' \\\n```"
  termsOfService: https://dojo.tech/legal/
  contact:
    name: Dojo Developer Experience Team
servers:
- url: https://api.dojo.tech
security:
- ApiKeyAuth: []
tags:
- name: Transactions
  description: Allows you to take and manage payments.
paths:
  /transactions/search:
    post:
      tags:
      - Transactions
      operationId: Transactions_Search
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchTransactionsRequest'
        required: true
        x-position: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedTransaction'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      parameters:
      - name: version
        in: header
        required: true
        schema:
          type: string
          format: date
        example: '2022-04-07'
        description: 'The API version with format `yyyy-mm-dd`. The Current version is `2022-04-07`.

          Today''s date will always give you the latest version. '
      summary: List all transactions
      description: 'Retrieves a list of transactions.

        Results are paginated. By default, the method returns up to 50 transactions.'
components:
  schemas:
    PagedResultOfTransaction:
      type: object
      additionalProperties: false
      properties:
        data:
          type:
          - array
          - 'null'
          description: 'An array of transactions.

            '
          items:
            $ref: '#/components/schemas/Transaction'
        before:
          type:
          - string
          - 'null'
          description: 'A cursor for use in pagination. Returns you to the previous page. `before` and `after`

            are mutually exclusive—only one of these may be used.'
        after:
          type:
          - string
          - 'null'
          description: 'A cursor for use in pagination. Sends you to the next page. `before` and `after` are

            mutually exclusive—only one of these may be used.'
    PaymentDetails:
      title: PaymentDetails
      type: object
      properties:
        card:
          $ref: '#/components/schemas/Card'
        authCode:
          type:
          - string
          - 'null'
          description: Authorization code for the transaction.
        isRemote:
          type: boolean
          description: Indiciates if a transaction was made using remote or terminal gateway.
        paymentProduct:
          $ref: '#/components/schemas/PaymentProduct'
        terminalEntryModeType:
          $ref: '#/components/schemas/TerminalEntryModeType'
        terminalId:
          type:
          - string
          - 'null'
          description: The ID of the terminal used for payment.
    SearchTransactionsRequest:
      type: object
      additionalProperties: false
      description: ''
      required:
      - startDate
      - endDate
      properties:
        startDate:
          type:
          - string
          - 'null'
          format: date-time
          description: 'A date and time to display transaction results from, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format. The span between the start and end dates cannot exceed 7 days.

            '
        endDate:
          type:
          - string
          - 'null'
          format: date-time
          description: 'A date and time to display transaction results until, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format. The span between the start and end dates cannot exceed 7 days.

            '
        cursor:
          oneOf:
          - $ref: '#/components/schemas/Cursor'
          description: A cursor for use in pagination.
      example:
        statuses:
        - Authorized
        startDate: '2019-08-24T14:15:22Z'
        endDate: '2023-08-24T14:15:22Z'
        cursor:
          limit: 20
    PagedTransaction:
      allOf:
      - $ref: '#/components/schemas/PagedResultOfTransaction'
      - type: object
        additionalProperties: false
    Money:
      title: Money
      type: object
      example:
        value: 1000
        currencyCode: GBP
      properties:
        value:
          type: integer
          description: The amount in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) minor units, for example "100" for 1.00 GBP.
          format: int64
        currencyCode:
          type: string
          description: Three-letter currency code in [ISO 4217 alpha-3](https://www.iso.org/iso-4217-currency-codes.html) format. Accepts `GBP` and `EUR`.
          minLength: 1
          maxLength: 10
      required:
      - value
      - currencyCode
    TransactionStatus:
      type: string
      description: Current status of the transaction.
      title: TransactionStatus
      enum:
      - Authorized
      - Declined
      - Held
      - UnderReview
      - Reversed
      - AwaitingCollection
      - Released
      - Expired
    ProblemDetails:
      type: object
      title: ProblemDetails
      description: ''
      properties:
        type:
          type:
          - string
          - 'null'
          description: 'Card scheme for example: `Visa`, `Mastercard`, etc.'
        title:
          type:
          - string
          - 'null'
          description: 'A short, human-readable summary of the error.

            '
        status:
          type:
          - integer
          - 'null'
          format: int32
          description: The [HTTP status code](#section/Introduction/HTTP-Responses).
        detail:
          type:
          - string
          - 'null'
          description: 'A human-readable message giving more details about the error. This field is optional, so it''s not always present. '
        traceId:
          type:
          - string
          - 'null'
          description: 'The unique identifier of the failing request. This should be used to track the source of the error.

            '
        errors:
          type:
          - object
          - 'null'
          description: A human-readable explanation of errors.
          additionalProperties: {}
    PaymentProduct:
      type: string
      description: The Dojo payment product associated with this transaction.
      title: PaymentProduct
      enum:
      - TapToPayOnIPhone
      - DojoPocket
      - Terminal
      - OnlineCheckout
      - VirtualTerminal
      - PaymentLinks
      - DojoBookings
      - PayByQr
      - Other
    Transaction:
      type: object
      additionalProperties: false
      description: The Transaction object.
      title: Transaction
      properties:
        id:
          type: string
          description: 'Unique identifier for the transaction.

            '
        legacyId:
          type: string
          description: 'Unique identifier for the transaction (legacy form).

            '
        dateTime:
          type: string
          format: date-time
          description: The timestamp of the transaction, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format.
        paymentIntentId:
          type:
          - string
          - 'null'
          description: If the transaction was made using a payment intent, its ID will be included here.
        merchantId:
          type:
          - string
          - 'null'
          description: 'The merchant''s unique identifier (MID).

            '
        type:
          $ref: '#/components/schemas/TransactionType'
        status:
          $ref: '#/components/schemas/TransactionStatus'
        amount:
          oneOf:
          - $ref: '#/components/schemas/Money'
          description: The transaction's sale amount.
        cashbackAmount:
          oneOf:
          - $ref: '#/components/schemas/Money'
          description: The cashback amount of the transaction.
        tipsAmount:
          oneOf:
          - $ref: '#/components/schemas/Money'
          description: Expressed as a positive integer, this is the amount of tip (gratuity) attached to a transaction.
        reference:
          type:
          - string
          - 'null'
          description: The reference (or merchant provided order ID) of the transaction.
        paymentDetails:
          oneOf:
          - $ref: '#/components/schemas/PaymentDetails'
          description: The details of the payment associated with the transaction including payment product, card information, etc.
    Cursor:
      type: object
      additionalProperties: false
      description: A cursor for use in pagination.
      properties:
        limit:
          type: integer
          format: int32
          minimum: 1
          maximum: 100
          example: 20
          default: 50
          description: The maximum number of results that can be returned in a single page.
        before:
          type:
          - string
          - 'null'
          description: 'A cursor for use in pagination. Returns you to the previous page. `before` and `after`

            are mutually exclusive—only one of these may be used.'
        after:
          type:
          - string
          - 'null'
          description: 'A cursor for use in pagination. Sends you to the next page. `before` and `after` are

            mutually exclusive—only one of these may be used.'
    TransactionType:
      type: string
      description: Types of transaction.
      title: TransactionType
      enum:
      - Sale
      - Refund
      - PreAuth
      - Collection
    TerminalEntryModeType:
      type: string
      description: Indicates the entry mode used on a payment made using a terminal.
      title: TerminalEntryModeType
      enum:
      - Chip
      - ContactLess
      - Swipe
      - Keyed
      - Unknown
    Card:
      title: Card
      type: object
      example:
        number: '**********0027'
        fundingType: Debit
        type: Mastercard
      properties:
        number:
          type:
          - string
          - 'null'
          description: The card number. Masked for security.
        fundingType:
          type:
          - string
          - 'null'
          description: 'Card funding type for example: `Credit`, `Debit`, etc...'
        type:
          type:
          - string
          - 'null'
          description: 'Card scheme for example: `Visa`, `Mastercard`, etc.'
  securitySchemes:
    ApiKeyAuth:
      in: header
      type: apiKey
      name: Authorization
x-generator: NSwag v13.12.1.0 (NJsonSchema v10.4.6.0 (Newtonsoft.Json v12.0.0.0))
x-tagGroup:
- name: Payments
  tags:
  - transactions
  - Refunds
  - Captures