Crossmint Order Intents API

The Order Intents API from Crossmint — 3 operation(s) for order intents.

Operations 5

GET /unstable/order-intents List Order Intents #
POST /unstable/order-intents Create Order Intent #
DELETE /unstable/order-intents/{orderIntentId} Cancel Order Intent #
GET /unstable/order-intents/{orderIntentId} Get Order Intent #
POST /unstable/order-intents/{orderIntentId}/credentials Create Order Intent Credential #

Specifications

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/crossmint:crossmint-order-intents-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

crossmint-order-intents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@crossmint.com
    name: Crossmint Support
    url: https://www.crossmint.com
  description: Generated from Crossmint's published product API specifications. Do not edit by hand.
  title: Crossmint Order Intents API
  version: 1.0.0
servers:
- description: Staging environment (testnets)
  url: https://staging.crossmint.com/api
- description: Production environment (mainnets)
  url: https://www.crossmint.com/api
tags:
- name: Order Intents
paths:
  /unstable/order-intents:
    get:
      description: 'List all order intents for the authenticated user.


        **API scope required**: `order-intents.read`'
      operationId: orderIntents.list
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/OrderIntentResponseDto'
                type: array
          description: Returns the list of order intents
      security:
      - apiKey: []
        userJwt: []
      summary: List Order Intents
      tags:
      - Order Intents
    post:
      description: 'Create a new order intent.


        **API scope required**: `order-intents.create`'
      operationId: orderIntents.create
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrderIntentInputDto'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderIntentResponseDto'
          description: The order intent has been successfully created
      security:
      - apiKey: []
        userJwt: []
      summary: Create Order Intent
      tags:
      - Order Intents
  /unstable/order-intents/{orderIntentId}:
    delete:
      description: 'Cancel an active order intent.


        **API scope required**: `order-intents.revoke`'
      operationId: orderIntents.cancel
      parameters:
      - in: path
        name: orderIntentId
        required: true
        schema:
          type: string
      responses:
        '204':
          description: The order intent has been successfully cancelled
      security:
      - apiKey: []
        userJwt: []
      summary: Cancel Order Intent
      tags:
      - Order Intents
    get:
      description: 'Get a specific order intent by ID.


        **API scope required**: `order-intents.read`'
      operationId: orderIntents.get
      parameters:
      - in: path
        name: orderIntentId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderIntentResponseDto'
          description: Returns the order intent
      security:
      - apiKey: []
        userJwt: []
      summary: Get Order Intent
      tags:
      - Order Intents
  /unstable/order-intents/{orderIntentId}/credentials:
    post:
      description: 'Create a payment credential from an order intent.


        **API scope required**: `order-intents.credentials`'
      operationId: orderIntents.credentials.create
      parameters:
      - in: path
        name: orderIntentId
        required: true
        schema:
          type: string
      - description: 'Makes a retry of this request safe: a second call with the same key never consumes the amount again. Credential payloads are returned once, so a replay after a successful mint answers 409 `ORDER_INTENT_CREDENTIAL_ALREADY_ISSUED`. Without it every call is a new mint. 1 to 255 characters.'
        in: header
        name: Idempotency-Key
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrderIntentCredentialInputDto'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderIntentCredentialResponseDto'
          description: Returns the payment credential
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorDto'
          description: 'The card security code must be collected again before an `encrypted-card` credential can be issued (`code: "ORDER_INTENT_CVC_RECOLLECTION_REQUIRED"`). The rail stays `pending_cvc_recollection`: recollect the CVC and retry.


            A credential was already issued for this `Idempotency-Key` (`code: "ORDER_INTENT_CREDENTIAL_ALREADY_ISSUED"`). Credential payloads are returned once; use a new key for a new mint.'
      security:
      - apiKey: []
        userJwt: []
      summary: Create Order Intent Credential
      tags:
      - Order Intents
components:
  schemas:
    OrderIntentResponseDto:
      additionalProperties: false
      properties:
        amount:
          additionalProperties: false
          properties:
            available:
              pattern: ^\d+(\.\d{1,4})?$
              type: string
            currency:
              pattern: ^[A-Za-z]{3}$
              type: string
            reserved:
              pattern: ^\d+(\.\d{1,4})?$
              type: string
            spent:
              pattern: ^\d+(\.\d{1,4})?$
              type: string
            total:
              pattern: ^\d+(\.\d{1,4})?$
              type: string
          required:
          - available
          - currency
          - reserved
          - spent
          - total
          type: object
        description:
          type: string
        expiresAt:
          description: ISO 8601. A UTC offset is accepted. Fractional seconds are optional.
          example: 2024-01-15 10:30:00+00:00
          format: date-time
          type: string
        merchant:
          additionalProperties: false
          allOf:
          - $ref: '#/components/schemas/AgenticOrderIntentMerchantDto'
          properties:
            acquirerBin:
              pattern: ^\d{6}$
              type: string
            categoryCode:
              pattern: ^\d{4}$
              type: string
            countryCode:
              pattern: ^[A-Za-z]{2}$
              type: string
            name:
              maxLength: 200
              minLength: 1
              type: string
            url:
              maxLength: 2048
              pattern: ^https?:\/\/
              type: string
        orderIntentId:
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          type: string
        paymentMethodId:
          minLength: 1
          type: string
        rails:
          items:
            anyOf:
            - additionalProperties: false
              properties:
                credentialFormats:
                  items:
                    const: card
                    type: string
                  maxItems: 1
                  minItems: 1
                  type: array
                error:
                  additionalProperties: false
                  properties:
                    code:
                      minLength: 1
                      type: string
                  required:
                  - code
                  type: object
                rail:
                  const: encrypted-card
                  type: string
                status:
                  const: error
                  type: string
              required:
              - credentialFormats
              - error
              - rail
              - status
              type: object
            - additionalProperties: false
              properties:
                credentialFormats:
                  items:
                    const: card
                    type: string
                  maxItems: 1
                  minItems: 1
                  type: array
                error:
                  not: {}
                rail:
                  const: encrypted-card
                  type: string
                status:
                  enum:
                  - active
                  - pending_cvc_recollection
                  type: string
              required:
              - credentialFormats
              - rail
              - status
              type: object
            - additionalProperties: false
              properties:
                credentialFormats:
                  items:
                    const: identifier
                    type: string
                  type: array
                error:
                  additionalProperties: false
                  properties:
                    code:
                      minLength: 1
                      type: string
                  required:
                  - code
                  type: object
                provider:
                  const: stripe
                  type: string
                rail:
                  const: spt
                  type: string
                status:
                  const: error
                  type: string
              required:
              - credentialFormats
              - error
              - provider
              - rail
              - status
              type: object
            - additionalProperties: false
              properties:
                credentialFormats:
                  items:
                    const: identifier
                    type: string
                  type: array
                error:
                  not: {}
                provider:
                  const: stripe
                  type: string
                rail:
                  const: spt
                  type: string
                status:
                  enum:
                  - active
                  - pending_verification
                  type: string
              required:
              - credentialFormats
              - provider
              - rail
              - status
              type: object
            - additionalProperties: false
              properties:
                credentialFormats:
                  items:
                    enum:
                    - card
                    - network-token
                    type: string
                  type: array
                error:
                  additionalProperties: false
                  properties:
                    code:
                      minLength: 1
                      type: string
                  required:
                  - code
                  type: object
                provider:
                  enum:
                  - agentpay
                  - vic
                  type: string
                rail:
                  const: agentic-token
                  type: string
                status:
                  const: error
                  type: string
              required:
              - credentialFormats
              - error
              - provider
              - rail
              - status
              type: object
            - additionalProperties: false
              properties:
                credentialFormats:
                  items:
                    enum:
                    - card
                    - network-token
                    type: string
                  type: array
                error:
                  not: {}
                provider:
                  enum:
                  - agentpay
                  - vic
                  type: string
                rail:
                  const: agentic-token
                  type: string
                status:
                  enum:
                  - active
                  - pending_verification
                  type: string
              required:
              - credentialFormats
              - provider
              - rail
              - status
              type: object
          type: array
        status:
          enum:
          - active
          - cancelled
          - expired
          type: string
        verificationConfig:
          additionalProperties: false
          properties:
            allowanceId:
              minLength: 1
              type: string
            environment:
              enum:
              - production
              - test
              type: string
            publicApiKey:
              type: string
          required:
          - allowanceId
          - environment
          - publicApiKey
          type: object
      required:
      - amount
      - description
      - expiresAt
      - orderIntentId
      - paymentMethodId
      - rails
      - status
      type: object
    CreateOrderIntentInputDto:
      additionalProperties: false
      properties:
        amount:
          additionalProperties: false
          properties:
            currency:
              pattern: ^[A-Za-z]{3}$
              type: string
            value:
              pattern: ^\d+(\.\d{1,4})?$
              type: string
          required:
          - currency
          - value
          type: object
        description:
          maxLength: 10000
          minLength: 1
          type: string
        expiresAt:
          description: ISO 8601. A UTC offset is accepted. Fractional seconds are optional.
          example: 2024-01-15 10:30:00+00:00
          format: date-time
          type: string
        merchant:
          additionalProperties: false
          allOf:
          - $ref: '#/components/schemas/AgenticOrderIntentMerchantDto'
          properties:
            acquirerBin:
              pattern: ^\d{6}$
              type: string
            categoryCode:
              pattern: ^\d{4}$
              type: string
            countryCode:
              pattern: ^[A-Za-z]{2}$
              type: string
            name:
              maxLength: 200
              minLength: 1
              type: string
            url:
              maxLength: 2048
              pattern: ^https?:\/\/
              type: string
        paymentMethodId:
          minLength: 1
          type: string
      required:
      - amount
      - description
      - expiresAt
      - paymentMethodId
      type: object
    AgenticOrderIntentMerchantDto:
      additionalProperties: false
      properties:
        acquirerBin:
          pattern: ^\d{6}$
          type: string
        categoryCode:
          pattern: ^\d{4}$
          type: string
        countryCode:
          pattern: ^[A-Za-z]{2}$
          type: string
        name:
          maxLength: 200
          minLength: 1
          type: string
        url:
          maxLength: 2048
          pattern: ^https?:\/\/
          type: string
      required:
      - countryCode
      - name
      - url
      type: object
    OrderIntentCredentialResponseDto:
      oneOf:
      - additionalProperties: false
        properties:
          amount:
            additionalProperties: false
            properties:
              currency:
                pattern: ^[A-Za-z]{3}$
                type: string
              value:
                pattern: ^\d+(\.\d{1,4})?$
                type: string
            required:
            - currency
            - value
            type: object
          credential:
            additionalProperties: false
            properties:
              format:
                const: card
                type: string
              value:
                minLength: 1
                type: string
            required:
            - format
            - value
            type: object
          expiresAt:
            description: ISO 8601. A UTC offset is accepted. Fractional seconds are optional.
            example: 2024-01-15 10:30:00+00:00
            format: date-time
            type: string
          id:
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            type: string
          rail:
            const: encrypted-card
            type: string
        required:
        - amount
        - credential
        - expiresAt
        - id
        - rail
        type: object
      - additionalProperties: false
        properties:
          amount:
            additionalProperties: false
            properties:
              currency:
                pattern: ^[A-Za-z]{3}$
                type: string
              value:
                pattern: ^\d+(\.\d{1,4})?$
                type: string
            required:
            - currency
            - value
            type: object
          credential:
            additionalProperties: false
            properties:
              format:
                const: identifier
                type: string
              value:
                minLength: 1
                type: string
            required:
            - format
            - value
            type: object
          expiresAt:
            description: ISO 8601. A UTC offset is accepted. Fractional seconds are optional.
            example: 2024-01-15 10:30:00+00:00
            format: date-time
            type: string
          id:
            minLength: 1
            type: string
          provider:
            const: stripe
            type: string
          rail:
            const: spt
            type: string
        required:
        - amount
        - credential
        - expiresAt
        - id
        - provider
        - rail
        type: object
      - additionalProperties: false
        properties:
          amount:
            additionalProperties: false
            properties:
              currency:
                pattern: ^[A-Za-z]{3}$
                type: string
              value:
                pattern: ^\d+(\.\d{1,4})?$
                type: string
            required:
            - currency
            - value
            type: object
          credential:
            anyOf:
            - additionalProperties: false
              properties:
                format:
                  const: card
                  type: string
                value:
                  additionalProperties: false
                  properties:
                    cvc:
                      type: string
                    expirationMonth:
                      maximum: 9007199254740991
                      minimum: -9007199254740991
                      type: integer
                    expirationYear:
                      maximum: 9007199254740991
                      minimum: -9007199254740991
                      type: integer
                    number:
                      type: string
                  required:
                  - cvc
                  - expirationMonth
                  - expirationYear
                  - number
                  type: object
              required:
              - format
              - value
              type: object
            - additionalProperties: false
              properties:
                format:
                  const: network-token
                  type: string
                value:
                  additionalProperties: false
                  properties:
                    cryptogram:
                      additionalProperties: false
                      properties:
                        expiresAt:
                          description: ISO 8601. A UTC offset is accepted. Fractional seconds are optional.
                          example: 2024-01-15 10:30:00+00:00
                          format: date-time
                          type: string
                        type:
                          const: CARD_APPLICATION_CRYPTOGRAM_SHORT_FORM
                          type: string
                        value:
                          type: string
                      required:
                      - type
                      - value
                      type: object
                    eci:
                      type: string
                    expirationMonth:
                      maximum: 9007199254740991
                      minimum: -9007199254740991
                      type: integer
                    expirationYear:
                      maximum: 9007199254740991
                      minimum: -9007199254740991
                      type: integer
                    paymentToken:
                      type: string
                  required:
                  - cryptogram
                  - eci
                  - expirationMonth
                  - expirationYear
                  - paymentToken
                  type: object
              required:
              - format
              - value
              type: object
          expiresAt:
            description: ISO 8601. A UTC offset is accepted. Fractional seconds are optional.
            example: 2024-01-15 10:30:00+00:00
            format: date-time
            type: string
          id:
            minLength: 1
            type: string
          provider:
            enum:
            - agentpay
            - vic
            type: string
          rail:
            const: agentic-token
            type: string
        required:
        - amount
        - credential
        - expiresAt
        - id
        - provider
        - rail
        type: object
    ApiErrorDto:
      properties:
        code:
          description: Machine-readable error code for programmatic handling
          type: string
        error:
          example: true
          type: boolean
        message:
          description: Human-readable error message describing what went wrong
          type: string
        parameters:
          additionalProperties:
            oneOf:
            - items:
                type: string
              type: array
            - type: string
          description: Values that explain a coded error, such as the limit that was exceeded, the amount that remains, or the list of supported currencies.
          type: object
      required:
      - error
      - message
      type: object
    CreateOrderIntentCredentialInputDto:
      oneOf:
      - additionalProperties: false
        properties:
          amount:
            additionalProperties: false
            properties:
              currency:
                pattern: ^[A-Za-z]{3}$
                type: string
              value:
                pattern: ^\d+(\.\d{1,4})?$
                type: string
            required:
            - currency
            - value
            type: object
          credential:
            additionalProperties: false
            properties:
              format:
                const: card
                type: string
              publicKey:
                additionalProperties: false
                properties:
                  e:
                    minLength: 1
                    type: string
                  kty:
                    const: RSA
                    type: string
                  n:
                    minLength: 342
                    pattern: ^[A-Za-z0-9_-]+$
                    type: string
                required:
                - e
                - kty
                - n
                type: object
            required:
            - format
            - publicKey
            type: object
          merchant:
            additionalProperties: false
            properties:
              acquirerBin:
                pattern: ^\d{6}$
                type: string
              categoryCode:
                pattern: ^\d{4}$
                type: string
              countryCode:
                pattern: ^[A-Za-z]{2}$
                type: string
              name:
                maxLength: 200
                minLength: 1
                type: string
              url:
                maxLength: 2048
                pattern: ^https?:\/\/
                type: string
            required:
            - countryCode
            - name
            - url
            type: object
          rail:
            const: encrypted-card
            type: string
        required:
        - amount
        - credential
        - rail
        type: object
      - additionalProperties: false
        properties:
          amount:
            additionalProperties: false
            properties:
              currency:
                pattern: ^[A-Za-z]{3}$
                type: string
              value:
                pattern: ^\d+(\.\d{1,4})?$
                type: string
            required:
            - currency
            - value
            type: object
          credential:
            additionalProperties: false
            properties:
              format:
                const: identifier
                type: string
              payload:
                additionalProperties: false
                properties:
                  networkBusinessProfile:
                    minLength: 1
                    type: string
                required:
                - networkBusinessProfile
                type: object
            required:
            - format
            - payload
            type: object
          merchant:
            additionalProperties: false
            properties:
              acquirerBin:
                pattern: ^\d{6}$
                type: string
              categoryCode:
                pattern: ^\d{4}$
                type: string
              countryCode:
                pattern: ^[A-Za-z]{2}$
                type: string
              name:
                maxLength: 200
                minLength: 1
                type: string
              url:
                maxLength: 2048
                pattern: ^https?:\/\/
                type: string
            required:
            - countryCode
            - name
            - url
            type: object
          provider:
            const: stripe
            type: string
          rail:
            const: spt
            type: string
        required:
        - amount
        - credential
        - provider
        - rail
        type: object
      - additionalProperties: false
        properties:
          amount:
            additionalProperties: false
            properties:
              currency:
                pattern: ^[A-Za-z]{3}$
                type: string
              value:
                pattern: ^\d+(\.\d{1,4})?$
                type: string
            required:
            - currency
            - value
            type: object
          credential:
            additionalProperties: false
            properties:
              format:
                enum:
                - card
                - network-token
                type: string
            required:
            - format
            type: object
          merchant:
            additionalProperties: false
            properties:
              acquirerBin:
                pattern: ^\d{6}$
                type: string
              categoryCode:
                pattern: ^\d{4}$
                type: string
              countryCode:
                pattern: ^[A-Za-z]{2}$
                type: string
              name:
                maxLength: 200
                minLength: 1
                type: string
              url:
                maxLength: 2048
                pattern: ^https?:\/\/
                type: string
            required:
            - countryCode
            - name
            - url
            type: object
          provider:
            enum:
            - agentpay
            - vic
            type: string
          rail:
            const: agentic-token
            type: string
        required:
        - amount
        - credential
        - provider
        - rail
        type: object
  securitySchemes:
    apiKey:
      description: API key required for authentication
      in: header
      name: X-API-KEY
      type: apiKey
    orderClientSecret:
      description: The `clientSecret` returned when the order was created, sent as the raw `Authorization` header value. Lets a browser or mobile client read and continue its own order without a server-side API key.
      in: header
      name: Authorization
      type: apiKey
    userJwt:
      bearerFormat: JWT
      description: 'The end user''s JWT, sent as `Authorization: Bearer <JWT>` together with a client-side API key. Validated against the project''s external JWT configuration.'
      scheme: bearer
      type: http
x-provenance:
  method: harvested
  publisher: Crossmint
  source: https://www.crossmint.com/openapi.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)