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

# Initialize payment

> This is what gives you the payment URL that you're user will use to pay for a service,  that payment will then be onramped and sent to your account. You need to add Bearer auth  token that has your private key from the platform




## OpenAPI

````yaml POST /api/transaction/initialize
openapi: 3.0.4
info:
  title: Orion API
  description: >-
    API for interacting with Orion. Currently has endpoints for initializing a
    payment
  version: 1.0.0
servers:
  - url: https://test.api.orionramp.com
    description: Staging server
security: []
paths:
  /api/transaction/initialize:
    post:
      summary: Initializes a payment request
      description: >
        This is what gives you the payment URL that you're user will use to pay
        for a service,  that payment will then be onramped and sent to your
        account. You need to add Bearer auth  token that has your private key
        from the platform
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Initialize'
      responses:
        '201':
          description: Payment request initialized succesfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiailizeSuccess'
      security:
        - bearerAuth: []
components:
  schemas:
    Initialize:
      type: object
      properties:
        token:
          type: string
          enum:
            - KESy_TESTNET
          description: The token you want to receive
        amount:
          type: number
          minimum: 1
          maximum: 500000
          description: The amount of money you want user to pay
        email:
          type: string
          format: email
          description: The user's email, where they'll be sent payment notification
        callback_url:
          type: string
          format: url
          description: >-
            Optional callback URL that you want user to be redirected to after
            completing payment
        channels:
          type: array
          items:
            type: string
            enum:
              - card
              - bank
              - ussd
              - qr
              - mobile_money
              - bank_transfer
              - eft
              - apple_pay
              - payattitude
          description: The payment channel you want user to use
        currency:
          type: string
          enum:
            - KES
          description: The currency that user is paying in
        crypto_account:
          type: string
          description: >-
            If you want the tokens to be sent to a different account from the
            one entered when creating business you can pass it here. It is a
            Hedera account ID e.g. 0.0.7441630
        metadata:
          type: object
          properties:
            orderID:
              type: string
              format: uuid
              description: >-
                A unique identifier of the payment you made, will be returned in
                the webhook
          required:
            - orderID
      required:
        - token
        - amount
        - email
        - currency
        - metadata
    InitiailizeSuccess:
      type: object
      properties:
        reference:
          type: string
        authorization_url:
          type: string
          format: url
          description: The URL to redirect user to for them to complete payment
        access_code:
          type: string
      required:
        - reference
        - authorization_url
        - access_code
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: PRIVATE KEY

````