> ## Documentation Index
> Fetch the complete documentation index at: https://developers.circle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a payment intent

> Create a continuous (default) or transient payment intent. Continuous payment intents are created by default. To create a transient payment intent, the type field must be explicitly set to 'transient'.



## OpenAPI

````yaml openapi/payments.yaml post /v1/paymentIntents
openapi: 3.0.2
info:
  version: ${version}
  title: Crypto Deposits API
  description: >
    The Circle Payments API allows you to take payments from your end users via
    traditional methods such as debit & credit cards and receive settlement in
    USDC.


    The Circle Payments API has been designed with any business or internet
    commerce in mind, not just crypto applications, and it's based on Circle's
    extensive experience processing millions of card payments since 2014.
servers:
  - url: https://api-sandbox.circle.com
  - url: https://api.circle.com
security: []
tags:
  - name: Payments
    description: Create, cancel, refund, and get updates on card payments.
  - name: Crypto Payment Intents
    description: Create and track intent for end user to pay via crypto.
paths:
  /v1/paymentIntents:
    post:
      tags:
        - Crypto Payment Intents
      summary: Create a payment intent
      description: >-
        Create a continuous (default) or transient payment intent. Continuous
        payment intents are created by default. To create a transient payment
        intent, the type field must be explicitly set to 'transient'.
      operationId: createPaymentIntent
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/ContinuousPaymentIntentCreationRequest'
                - $ref: '#/components/schemas/PaymentIntentCreationRequest'
              discriminator:
                propertyName: type
                mapping:
                  continuous:
                    $ref: >-
                      #/components/schemas/ContinuousPaymentIntentCreationRequest
                  transient:
                    $ref: '#/components/schemas/PaymentIntentCreationRequest'
      responses:
        '201':
          description: Successfully created a payment intent.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/XRequestId'
          content:
            application/json:
              schema:
                title: CreatePaymentIntentResponse
                properties:
                  data:
                    oneOf:
                      - $ref: '#/components/schemas/PaymentIntent'
                      - $ref: '#/components/schemas/ContinuousPaymentIntent'
              examples:
                Transient Payment Intent:
                  value:
                    data:
                      id: 8755d0ea-14f9-4259-b092-de23c14b6568
                      amount:
                        amount: '3.14'
                        currency: USD
                      amountPaid:
                        amount: '0.00'
                        currency: USD
                      settlementCurrency: USD
                      paymentMethods:
                        - type: blockchain
                          chain: ETH
                          address: '0x8381470ED67C3802402dbbFa0058E8871F017A6F'
                      paymentIds: []
                      timeline:
                        - status: created
                          time: '2022-07-21T20:13:35.579331Z'
                      createDate: '2022-07-21T20:13:35.578678Z'
                      updateDate: '2022-07-21T20:19:24.859052Z'
                Continuous Payment Intent:
                  value:
                    data:
                      id: e2e90ba3-9d1f-490d-9460-24ac6eb55a1b
                      currency: USD
                      settlementCurrency: USD
                      amountPaid:
                        amount: '0.00'
                        currency: USD
                      paymentMethods:
                        - type: blockchain
                          chain: ETH
                          address: '0x8381470ED67C3802402dbbFa0058E8871F017A6F'
                      timeline:
                        - status: created
                          time: '2023-01-21T20:13:35.579331Z'
                      type: continuous
                      createDate: '2023-01-21T20:13:35.578678Z'
                      updateDate: '2023-01-21T20:13:35.578678Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/NotAuthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
        - bearerAuth: []
components:
  schemas:
    ContinuousPaymentIntentCreationRequest:
      type: object
      required:
        - idempotencyKey
        - currency
        - settlementCurrency
        - paymentMethods
        - merchantWalletId
      properties:
        idempotencyKey:
          $ref: '#/components/schemas/IdempotencyKey'
        currency:
          description: Desired currency for the payment
          type: string
          enum:
            - USD
            - EUR
        settlementCurrency:
          description: >-
            Desired currency for the payments to settle in. This must match the
            currency used for the payment.
          type: string
          enum:
            - USD
            - EUR
        paymentMethods:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodBlockchainRequest'
        merchantWalletId:
          $ref: '#/components/schemas/MerchantWalletId'
        type:
          type: string
          description: Payment intent type. Defaults to 'continuous' if not specified.
          enum:
            - continuous
          default: continuous
    PaymentIntentCreationRequest:
      type: object
      required:
        - idempotencyKey
        - amount
        - settlementCurrency
        - paymentMethods
        - type
      properties:
        idempotencyKey:
          $ref: '#/components/schemas/IdempotencyKey'
        amount:
          $ref: '#/components/schemas/CryptoPaymentsMoney'
        settlementCurrency:
          description: >-
            Desired currency for the payments to settle in. This must match the
            currency used for the payment method.
          type: string
          enum:
            - USD
            - EUR
        paymentMethods:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodBlockchain'
        merchantWalletId:
          $ref: '#/components/schemas/MerchantWalletId'
        type:
          type: string
          description: >-
            Payment intent type. Must be explicitly set to 'transient' for
            transient payment intents.
          enum:
            - transient
    PaymentIntent:
      type: object
      required:
        - amount
        - settlementCurrency
        - paymentMethods
      properties:
        id:
          type: string
          description: Unique system generated identifier for the entity.
          format: uuid
          example: b8627ae8-732b-4d25-b947-1df8f4007a29
        amount:
          $ref: '#/components/schemas/CryptoPaymentsMoney'
        amountPaid:
          $ref: '#/components/schemas/CryptoPaymentsMoney'
        amountRefunded:
          $ref: '#/components/schemas/CryptoPaymentsMoney'
        settlementCurrency:
          description: Desired currency for the payments to settle in.
          type: string
          enum:
            - USD
        paymentMethods:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodBlockchain'
        fees:
          type: array
          items:
            $ref: '#/components/schemas/PaymentIntentFees'
        paymentIds:
          description: List of associated payments.
          type: array
          items:
            type: string
            format: uuid
            example: 69808f36-3e5e-4f37-bf82-ca79e4d70fc1
        refundIds:
          description: List of associated refunds.
          type: array
          items:
            type: string
            format: uuid
            example: 425dca6d-ac79-43b6-b0f9-43fdc51de91b
        timeline:
          description: State management timeline.
          type: array
          items:
            $ref: '#/components/schemas/Timeline'
        expiresOn:
          $ref: '#/components/schemas/UtcTimestamp'
        updateDate:
          $ref: '#/components/schemas/UtcTimestamp'
        createDate:
          $ref: '#/components/schemas/UtcTimestamp'
        merchantWalletId:
          $ref: '#/components/schemas/MerchantWalletId'
    ContinuousPaymentIntent:
      type: object
      required:
        - currency
        - settlementCurrency
        - paymentMethods
        - type
      properties:
        id:
          $ref: '#/components/schemas/Id'
        currency:
          description: Desired currency of the payment.
          type: string
          enum:
            - USD
        amountPaid:
          $ref: '#/components/schemas/CryptoPaymentsMoney'
        amountRefunded:
          $ref: '#/components/schemas/CryptoPaymentsMoney'
        settlementCurrency:
          description: Desired currency for the payments to settle in.
          type: string
          enum:
            - USD
        paymentMethods:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodBlockchain'
        fees:
          type: array
          items:
            $ref: '#/components/schemas/PaymentIntentFees'
        timeline:
          description: State management timeline.
          type: array
          items:
            $ref: '#/components/schemas/Timeline'
        updateDate:
          $ref: '#/components/schemas/UtcTimestamp'
        createDate:
          $ref: '#/components/schemas/UtcTimestamp'
        type:
          type: string
          enum:
            - continuous
        merchantWalletId:
          $ref: '#/components/schemas/MerchantWalletId'
    IdempotencyKey:
      type: string
      description: >-
        Universally unique identifier (UUID v4) idempotency key. This key is
        utilized to ensure exactly-once execution of mutating requests.
      format: uuid
      example: ba943ff1-ca16-49b2-ba55-1057e70ca5c7
    PaymentMethodBlockchainRequest:
      type: object
      required:
        - type
        - chain
      properties:
        type:
          type: string
          enum:
            - blockchain
        chain:
          $ref: '#/components/schemas/Chain'
    MerchantWalletId:
      type: string
      description: Unique system generated identifier for the wallet of the merchant.
      maxLength: 36
      example: '212000'
    CryptoPaymentsMoney:
      type: object
      required:
        - amount
        - currency
      properties:
        amount:
          description: Magnitude of the amount, in units of the currency, with a `.`.
          type: string
          example: '3.14'
        currency:
          description: Currency code.
          type: string
          enum:
            - USD
            - EUR
    PaymentMethodBlockchain:
      type: object
      required:
        - type
        - chain
      properties:
        type:
          type: string
          enum:
            - blockchain
        chain:
          type: string
          description: The blockchain network for the payment.
          enum:
            - ALGO
            - ARB
            - AVAX
            - BASE
            - BTC
            - ETH
            - HBAR
            - NOBLE
            - OP
            - POLY
            - SOL
            - SUI
            - XLM
        address:
          type: string
          example: '0x8381470ED67C3802402dbbFa0058E8871F017A6F'
    PaymentIntentFees:
      type: object
      required:
        - type
        - amount
        - currency
      properties:
        type:
          type: string
          enum:
            - blockchainLeaseFee
            - totalPaymentFees
        amount:
          description: Magnitude of the amount, in units of the currency, with a `.`.
          type: string
          example: '3.14'
        currency:
          description: Currency code.
          type: string
          enum:
            - USD
    Timeline:
      type: object
      required:
        - status
        - time
      properties:
        status:
          type: string
          enum:
            - created
            - pending
            - complete
            - expired
            - failed
            - refunded
        context:
          type: string
          enum:
            - underpaid
            - paid
            - overpaid
        reason:
          type: string
          enum:
            - requested_by_merchant
            - fee_collection_failed
        time:
          description: ISO-8601 UTC date/time format.
          type: string
          format: date-time
    UtcTimestamp:
      type: string
      description: ISO-8601 UTC date/time format.
      example: '2020-04-10T02:13:30.000Z'
    Id:
      type: string
      description: Unique system generated identifier for the entity.
      format: uuid
      example: b8627ae8-732b-4d25-b947-1df8f4007a29
    Chain:
      type: string
      description: >
        A blockchain that a given currency is available on.


        **Note:** Arc (`ARC`) is only available in the sandbox environment
        (`api-sandbox.circle.com`).
      enum:
        - ALGO
        - APTOS
        - ARB
        - ARC
        - AVAX
        - BASE
        - BTC
        - CELO
        - CODEX
        - ETH
        - HBAR
        - HYPEREVM
        - INK
        - LINEA
        - NEAR
        - NOBLE
        - OP
        - PLUME
        - PAH
        - POLY
        - SEI
        - SOL
        - SONIC
        - SUI
        - UNI
        - WORLDCHAIN
        - XDC
        - XLM
        - XRP
        - ZKS
        - ZKSYNC
  headers:
    XRequestId:
      description: >-
        Universally unique identifier (UUID v4) for the request. Helpful for
        identifying a request when communicating with Circle support.
      schema:
        type: string
        format: uuid
        example: 2adba88e-9d63-44bc-b975-9b6ae3440dde
  responses:
    BadRequest:
      description: The request cannot be processed due to a client error.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            type: object
            title: BadRequest
            required:
              - code
              - message
            properties:
              code:
                type: integer
                example: 400
              message:
                type: string
                example: Something went wrong.
            example:
              code: 400
              message: Bad request.
          examples:
            response:
              value:
                code: 400
                message: Bad request.
    NotAuthorized:
      description: >-
        The request has not been applied because it lacks valid authentication
        credentials.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            type: object
            title: NotAuthorized
            required:
              - code
              - message
            properties:
              code:
                type: integer
                example: 400
              message:
                type: string
                example: Something went wrong.
            example:
              code: 401
              message: Malformed authorization.
          examples:
            response:
              value:
                code: 401
                message: Malformed authorization.
    Forbidden:
      description: >-
        The request provides authentication, but the authenticated user does not
        possess sufficient permissions for accessing this resource.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            type: object
            title: Forbidden
            required:
              - code
              - message
            properties:
              code:
                type: integer
                example: 400
              message:
                type: string
                example: Something went wrong.
            example:
              code: 3
              message: Forbidden
          examples:
            response:
              value:
                code: 3
                message: Forbidden
    NotFound:
      description: The specified resource was not found.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            type: object
            title: NotFound
            required:
              - code
              - message
            properties:
              code:
                type: integer
                example: 400
              message:
                type: string
                example: Something went wrong.
            example:
              code: 404
              message: Not found.
          examples:
            response:
              value:
                code: 404
                message: Not found.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````