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

# Create Redirect Intent

> Create a payment intent for the customer to be redirected on hosted UI and make a purchase there.



## OpenAPI

````yaml api-reference/openapi-payments.json POST /payments/v2/intent/redirect
openapi: 3.0.0
info:
  title: Forte Payments API
  version: v1.0.0
servers:
  - url: https://sandbox-api.sandbox.lemmax.com
    variables: {}
security:
  - authorization: []
tags:
  - name: Forte Payments
  - name: Forte Compliance
paths:
  /payments/v2/intent/redirect:
    post:
      tags:
        - Forte Payments
      summary: Create intent for widget redirect
      description: >-
        Create a payment intent for the customer to be redirected on hosted UI
        and make a purchase there.
      operationId: createRedirectV2
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/transaction_type_buy_vda'
        description: Payment intent request payload
        required: false
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/redirect_created'
          description: Create intent redirect response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonErrorResponse'
          description: Unauthorized
        '406':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonErrorResponse'
          description: Not Acceptable
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ERR04'
          description: Conflict
        '415':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonErrorResponse'
          description: Unsupported Media Type
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonErrorResponse'
          description: Bad Request
      callbacks: {}
      security:
        - authorization: []
components:
  schemas:
    transaction_type_buy_vda:
      description: Request payload for `BUY_VDA` transaction type
      example:
        buyer:
          email: example@email.com
          id: unique_customer_id
        currency: USD
        idempotency_key: unique_string
        items:
          - amount: '10.70'
            description: optional item description
            id: item id
            image_url: https://developer-image.url/image.png
            title: Item title
        transaction_type: BUY_VDA
        reference: 44cda1bb-2625-4acf-9d84-0cb78589e9a6
      properties:
        buyer:
          anyOf:
            - properties:
                email:
                  description: Customer's verified email in the Developer's system.
                  example: example@email.com
                  format: email
                  maxLength: 255
                  type: string
                  x-struct: null
                  x-validate: null
                id:
                  description: The unique identifier representing the customer.
                  maxLength: 1000
                  type: string
                  x-struct: null
                  x-validate: null
              required:
                - id
                - email
              type: object
              x-struct: null
              x-validate: null
            - properties:
                id:
                  description: The unique identifier representing the customer.
                  maxLength: 1000
                  type: string
                  x-struct: null
                  x-validate: null
                wallet:
                  description: Customer's wallet
                  properties:
                    address:
                      description: The address of the crypto wallet.
                      example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
                      type: string
                      x-struct: null
                      x-validate: null
                    blockchain:
                      description: The blockchain of the wallet.
                      enum:
                        - ethereum
                        - sepolia
                        - polygon
                        - amoy
                        - solana
                        - solana_devnet
                        - base
                        - base_sepolia
                        - avalanche_c
                        - avalanche_fuji
                        - binance_smart_chain
                        - binance_smart_chain_testnet
                        - arbitrum_one
                        - arbitrum_sepolia
                        - apechain
                        - curtis
                        - etherlink
                        - etherlink_testnet
                        - soneium
                        - soneium_minato
                        - aleo
                        - aleo_testnet
                      example: ethereum
                      type: string
                      x-struct: null
                      x-validate: null
                  required:
                    - blockchain
                    - address
                  type: object
                  x-struct: null
                  x-validate: null
              required:
                - id
                - wallet
              type: object
              x-struct: null
              x-validate: null
            - properties:
                email:
                  description: Customer's verified email in the Developer's system.
                  example: example@email.com
                  format: email
                  maxLength: 255
                  type: string
                  x-struct: null
                  x-validate: null
                id:
                  description: The unique identifier representing the customer.
                  maxLength: 1000
                  type: string
                  x-struct: null
                  x-validate: null
                wallet:
                  description: Customer's wallet
                  properties:
                    address:
                      description: The address of the crypto wallet.
                      example: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
                      type: string
                      x-struct: null
                      x-validate: null
                    blockchain:
                      description: The blockchain of the wallet.
                      enum:
                        - ethereum
                        - sepolia
                        - polygon
                        - amoy
                        - solana
                        - solana_devnet
                        - base
                        - base_sepolia
                        - avalanche_c
                        - avalanche_fuji
                        - binance_smart_chain
                        - binance_smart_chain_testnet
                        - arbitrum_one
                        - arbitrum_sepolia
                        - apechain
                        - curtis
                        - etherlink
                        - etherlink_testnet
                        - soneium
                        - soneium_minato
                        - aleo
                        - aleo_testnet
                      example: ethereum
                      type: string
                      x-struct: null
                      x-validate: null
                  required:
                    - blockchain
                    - address
                  type: object
                  x-struct: null
                  x-validate: null
              required:
                - id
                - email
                - wallet
              type: object
              x-struct: null
              x-validate: null
          description: >-
            Details of the customer purchasing the item. Either `email` or
            `wallet` or both must be present.
          x-struct: null
          x-validate: null
        currency:
          description: Currency of the item.
          enum:
            - USD
            - EUR
          example: USD
          type: string
          x-struct: null
          x-validate: null
        idempotency_key:
          description: A unique value provided to ensure the operation is idempotent.
          example: idempotency-key-1
          maxLength: 1000
          type: string
          x-struct: null
          x-validate: null
        items:
          items:
            description: Details for the item being purchased.
            properties:
              amount:
                description: Decimal Amount of the item, should be 2 decimal points.
                example: '100.00'
                maxLength: 100
                type: string
                x-struct: null
                x-validate: null
              description:
                description: Detailed description of the item.
                example: Detailed item description
                maxLength: 255
                type: string
                x-struct: null
                x-validate: null
              id:
                description: ID of the item in the Developer's system.
                example: item-id-1
                maxLength: 255
                type: string
                x-struct: null
                x-validate: null
              image_url:
                description: URL of the image to display for the item.
                example: https://some-image.url/image.png
                maxLength: 255
                type: string
                x-struct: null
                x-validate: null
              title:
                description: Name of the purchased item.
                example: Item Title
                maxLength: 255
                type: string
                x-struct: null
                x-validate: null
            required:
              - amount
              - image_url
              - title
              - id
            type: object
            x-struct: null
            x-validate: null
          maxItems: 1
          minItems: 1
          type: array
          x-struct: null
          x-validate: null
        transaction_type:
          description: >-
            Transaction type for buying Virtual Digital Assets, e.g. game
            currency.
          enum:
            - BUY_VDA
          type: string
          x-struct: null
          x-validate: null
        reference:
          description: Optional merchant-provided reference.
          example: 44cda1bb-2625-4acf-9d84-0cb78589e9a6
          maxLength: 100
          type: string
      required:
        - items
        - transaction_type
        - buyer
        - currency
        - idempotency_key
      title: transaction_type_buy_vda
      type: object
      x-struct: Elixir.FortePaymentSvcWeb.OpenApi.Novapay.V2.BuyVDA
      x-validate: null
    redirect_created:
      example:
        data:
          redirect_url: >-
            https://redirect.forte.io/0f7660c1-a106-481f-acf9-1848e98a7230?redirect_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdGF0ZSI6IjRnd1ZRWnFDV0FMYXBHZVVvS0tpQm4zRVIyWkRweDExIiwiZXhwIjoxNjkyMDQ1MTI5LCJpc3MiOiJmb3J0ZV9hdXRoX3N2YyIsInRva2VuX3R5cGUiOiJleHRlcm5hbF90b2tlbiJ9.avRqsX_ohBVaZ-3i1eCUWkqPrJhuTafjklh5BJ4oevQ
      properties:
        data:
          properties:
            redirect_url:
              description: >-
                The url returned to the merchant to initialize the payment
                widget in a redirect flow.
              type: string
              x-struct: null
              x-validate: null
          required:
            - redirect_url
          type: object
          x-struct: null
          x-validate: null
      required:
        - data
      title: redirect_created
      type: object
      x-struct: Elixir.FortePaymentSvcWeb.OpenApi.Novapay.V2.CreateRedirectResponse
      x-validate: null
    JsonErrorResponse:
      additionalProperties: false
      example:
        error:
          message: The Foo resource could not be found
          reason: Not Found
          status: 404
      properties:
        error:
          additionalProperties: false
          properties:
            code:
              oneOf:
                - format: int32
                  type: integer
                  x-struct: null
                  x-validate: null
                - maxLength: 1000
                  type: string
                  x-pnc-external: true
                  x-struct: null
                  x-validate: null
              x-struct: null
              x-validate: null
            message:
              description: >-
                Extra information about the error that may be displayed, but
                should not be used for programmatic matching
              example: The Foo resource could not be found
              maxLength: 1000
              minLength: 0
              type: string
              x-struct: null
              x-validate: null
            reason:
              description: HTTP status description
              example: Not Found
              maxLength: 1000
              minLength: 1
              type: string
              x-struct: null
              x-validate: null
            status:
              description: HTTP status code
              example: 404
              format: int32
              type: integer
              x-struct: null
              x-validate: null
          required:
            - status
            - reason
          type: object
          x-struct: null
          x-validate: null
      required:
        - error
      title: JsonErrorResponse
      type: object
      x-struct: Elixir.PncCommon.OpenApi.JsonErrorResponse
      x-validate: null
    ERR04:
      additionalProperties: false
      properties:
        error:
          additionalProperties: false
          description: >-
            Error response for when the payment is already submitted for the
            specific intent request.
          properties:
            code:
              oneOf:
                - format: int32
                  type: integer
                  x-struct: null
                  x-validate: null
                - description: Payment already submitted.
                  enum:
                    - ERR04
                  type: string
                  x-struct: null
                  x-validate: null
              x-struct: null
              x-validate: null
            message:
              description: >-
                Extra information about the error. Should **not** be used
                programmatically.
              maxLength: 1000
              type: string
              x-struct: null
              x-validate: null
            reason:
              description: HTTP status description.
              example: Conflict
              maxLength: 1000
              type: string
              x-struct: null
              x-validate: null
            status:
              description: HTTP status code.
              example: 409
              format: int32
              type: integer
              x-struct: null
              x-validate: null
          required:
            - code
            - status
            - reason
          type: object
          x-struct: null
          x-validate: null
      required:
        - error
      title: ERR04
      type: object
      x-struct: Elixir.PncCommon.OpenApi.ErrorResponse.ERR04
      x-validate: null
  securitySchemes:
    authorization:
      description: '`access_token` returned by the `/auth/v1/oauth2/tokens` API call.'
      scheme: bearer
      type: http

````