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

# Create Payment Intent

> Create and manage payment intents using Ziina’s API. Ideal for custom checkouts, mobile apps, and seamless payment flows



## OpenAPI

````yaml ../payment-service-openapi.json POST /payment_intent
openapi: 3.0.0
info:
  title: Ziina API
  description: ''
  version: 1.0.0
  contact: {}
servers:
  - url: https://api-v2.ziina.com/api
security:
  - bearer: []
tags: []
paths:
  /payment_intent:
    post:
      tags:
        - PaymentIntent
      operationId: PaymentIntentController_createPaymentIntent
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePaymentIntentDto'
      responses:
        default:
          description: Created payment intent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentIntentDto'
components:
  schemas:
    CreatePaymentIntentDto:
      type: object
      properties:
        amount:
          type: number
          description: >-
            Transaction amount. Values must be passed in the base units of their
            currency. For example, $10.50 should be provided as `1050`.
        currency_code:
          type: string
          description: >-
            Currency code of the amount to charge. This should be a 3-letter
            ISO-4217 currency code. For example, if you wish to charge 10 AED,
            you should pass AED. For more information on supported currencies,
            please visit the [supported currencies page](/supported-currencies)
          minLength: 3
          maxLength: 3
        message:
          type: string
          description: A message to be displayed to the user on the hosted payment page
        success_url:
          type: string
          description: >-
            The URL to be called by the hosted web page when the payment is
            successful
        cancel_url:
          type: string
          description: >-
            The URL to be called by the hosted web page when the payment is
            cancelled
        failure_url:
          type: string
          description: Url where user will be redirected after failed payment
        test:
          type: boolean
          description: >-
            Whether to create a test payment. Test payments do not require a
            payment method and can be used to test the payment flow. You won't
            be charged for this call. You can use [test cards](/test-cards) to
            test the payment flow.
        expiry:
          type: string
          description: Unix timestamp in milliseconds, must be a future date
        allow_tips:
          type: boolean
          default: false
          description: Whether to allow tips for this payment intent
      required:
        - amount
        - currency_code
    PaymentIntentDto:
      type: object
      properties:
        id:
          type: string
          description: id of the payment intent
        account_id:
          type: string
          description: Account which will receive payment
        amount:
          type: number
          description: >-
            Transaction amount. Values must be passed in the base units of their
            currency. For example, $10.50 should be provided as `1050`.
        tip_amount:
          type: number
          description: The amount of tips to be added to the payment intent
        fee_amount:
          type: number
          description: The amount of fees paid for this payment intent
        currency_code:
          type: string
          description: >-
            Currency code of the amount to charge. This should be a 3-letter
            ISO-4217 currency code. For example, if you wish to charge 10 AED,
            you should pass AED. For more information on supported currencies,
            please visit the [supported currencies page](/supported-currencies)
        created_at:
          type: string
          description: Unix timestamp in milliseconds
        status:
          type: string
          enum:
            - requires_payment_instrument
            - requires_user_action
            - pending
            - completed
            - failed
            - canceled
          description: >-
            Status of the transaction. You can find more details
            [here](/api-reference/payment-intent/index#fetching-a-payment-intent)
        operation_id:
          type: string
          description: >-
            Unique client generated UUID. In case of retries provide the same
            operation_id
        message:
          type: string
          description: A message to be displayed to the user on the hosted payment page
        redirect_url:
          type: string
          description: The URL to be used to redirect the client to the hosted payment page
        embedded_url:
          type: string
          description: >-
            The URL to be used to show embedded payment page with the payment
            widget
        success_url:
          type: string
          description: >-
            The URL to be called by the hosted web page when the payment is
            successful
        cancel_url:
          type: string
          description: >-
            The URL to be called by the hosted web page when the payment is
            cancelled
        latest_error:
          description: An error that was encountered while processing the payment intent
          allOf:
            - $ref: '#/components/schemas/ErrorDto'
        allow_tips:
          type: boolean
          default: false
          description: Whether tips are allowed for this payment intent
      required:
        - id
        - account_id
        - amount
        - tip_amount
        - currency_code
        - created_at
        - status
        - operation_id
    ErrorDto:
      type: object
      properties:
        message:
          type: string
          description: A human-readable error message
        code:
          type: string
          description: HTTP error status code
      required:
        - message
        - code
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````