Lean Technologies Payment Intents API

The Payment Intents API from Lean Technologies — 2 operation(s) for payment intents.

Business capability
Payment Initiation Management BC-1340.10

Operations 3

POST /payments/v1/intents Create Payment Intent #
GET /payments/v1/intents List Payment Intents #
GET /payments/v1/intents/{payment_intent_id} Get Payment Intent #

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/lean-technologies-payment-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

lean-technologies-payment-intents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: UAE - V2 Payment Intents API
  description: ''
  version: 1.0.0
servers:
- url: https://sandbox.leantech.me
  description: Sandbox
- url: https://api2.leantech.me
  description: Production / Pre-live
security:
- bearer: []
tags:
- name: Payment Intents
paths:
  /payments/v1/intents:
    post:
      summary: Create Payment Intent
      deprecated: false
      description: The Payment intent is the contract between your backend and Lean to certify that you will request a payment from your customer of a specified amount and currency. In order to initiate a payment, the `payment_intent_id` must be provided into the `pay()` or `checkout()` method of the LinkSDK.
      operationId: createPaymentIntent
      tags:
      - Payment Intents
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                customer_id:
                  type: string
                  format: uuid
                  description: The Customer you want to make a payment.
                amount:
                  type: number
                  description: The amount that should be charged to the customer.
                  format: float
                  examples:
                  - 120.43
                currency:
                  type: string
                  minLength: 3
                  maxLength: 3
                  description: The currency that the customer will make the payment in.
                description:
                  type: string
                  description: The description submitted to the bank as a reference when initiating a payment. Can be used for reconciliation. By default this value is a the Payment Intent UUID without hyphens but you can also specify the description upon creation of a payment intent.
                payment_destination_id:
                  type: string
                  description: Payment destination for where funds are settled into.
                purpose_code:
                  type: string
                  description: "A category code that relates to the type of services or goods that corresponds to the underlying purpose of the payment. The code must conform to the payment purpose code list.  \n**Supported values:**  \n- `FIS` – Financial services\n- `TCS` – Telecommunication services\n- `MWP` – Mobile wallet card payments\n- `OAT` – Own account transfer\n- `IFS` – Information services\n- `RNT` – Rent payments\n- `LNC` – Loan charges\n- `PIN` – Personal investments\n- `GDS` – Goods bought or sold"
                  enum:
                  - FIS
                  - TCS
                  - MWP
                  - OAT
                  - IFS
                  - RNT
                  - LNC
                  - PIN
                  - GDS
              required:
              - customer_id
              - amount
              - currency
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentIntent'
              example:
                payment_intent_id: 77f0c07e-7b7b-4677-bb05-6261f9eead0c
                customer_id: 89bf7bf8-89cb-42e5-8332-eeef869a2524
                amount: 61.4
                currency: AED
                description: 77f0c07e7b7b4677bb056261f9eead0c
                payments: []
                payment_destination:
                  id: 95c29647-c568-40d7-8710-3e330de1b5f2
                  bank_identifier: HSBC_UAE
                  name: Acme Corp.
                  iban: AE870200000XXXXXXXXXXXX
                  display_name: Acme Corp.
                  account_number: XXXXXXXXXXXX
                  swift_code: BBMEAEAD
                  status: CONFIRMED
                  address: Acme Towers, 51st Floor
                  country: ARE
                  city: Dubai
                  default: true
                  owner_type: APPLICATION
          headers: {}
      security:
      - bearer: []
    get:
      summary: List Payment Intents
      deprecated: false
      description: List all Payment Intents
      operationId: listPaymentIntents
      tags:
      - Payment Intents
      parameters:
      - name: page
        in: query
        description: Set which page to fetch (indexed to 0)
        required: true
        example: 0
        schema:
          type: integer
      - name: size
        in: query
        description: Set the page size to be returned
        required: true
        example: 50
        schema:
          type: integer
      - name: customer_id
        in: query
        description: Filter Payment Intents by Customer
        required: false
        schema:
          type: string
          format: uuid
      - name: from
        in: query
        description: Fetch Payment Intents created after this date-time
        required: false
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        description: Fetch Payment Intents created before this date-time
        required: false
        schema:
          type: string
          format: date-time
      - name: status
        in: query
        description: Filter the results to a specific status
        required: false
        schema:
          type: string
          enum:
          - CREDENTIALS_UPDATE_REQUIRED
          - AWAITING_END_USER_AUTHORIZATION
          - AWAITING_LOGIN_MFA_TOKEN
          - AWAITING_APP_AUTH
          - AWAITING_PAYMENT_MFA_TOKEN
          - AWAITING_PAYMENT_SECURITY_QUESTIONS
          - INVALID_CREDENTIALS
          - INVALID_LOGIN_MFA
          - INVALID_PAYMENT_MFA
          - BENEFICIARY_NOT_FOUND
          - MFA_ATTEMPTS_EXHAUSTED
          - SECURITY_QUESTION_ANSWER_ATTEMPTS_EXHAUSTED
          - PENDING_WITH_BANK
          - AWAITING_AUTHORIZATION
          - FAILED
          - AWAITING_AUTHORIZATION_LOGIN_MFA
          - INVALID_AUTHORIZATION_LOGIN_MFA
          - AWAITING_AUTHORIZATION_LOGIN_SECURITY_QUESTION
          - AWAITING_AUTHORIZATION_LOGIN_SECURITY_QUESTION_ANSWER
          - INVALID_AUTHORIZATION_LOGIN_SECURITY_QUESTION_ANSWER
          - AUTHORIZATION_LOGIN_SECURITY_QUESTION_ANSWER_ATTEMPTS_EXHAUSTED
          - AUTHORIZATION_FAILED
          - AWAITING_AUTHORIZATION_PAYMENT_MFA
          - INVALID_AUTHORIZATION_PAYMENT_MFA
          - PARTIAL_ACCEPTED_BY_BANK
          - AUTHORIZATION_MFA_ATTEMPTS_EXHAUSTED
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/PaymentIntent'
                  page:
                    $ref: '#/components/schemas/Pagination'
                required:
                - data
                - page
              example:
                data:
                - payment_intent_id: 77f0c07e-7b7b-4677-bb05-6261f9eead0c
                  customer_id: 89bf7bf8-89cb-42e5-8332-eeef869a2524
                  amount: 61.4
                  currency: AED
                  description: 77f0c07e7b7b4677bb056261f9eead0c
                  payments:
                  - id: 25c90cc6-67dc-4193-a6e9-a7c875fcc0af
                    payment_intent_id: 77f0c07e-7b7b-4677-bb05-6261f9eead0c
                    payment_source_id: b6fba7da-1054-5e82-8a9a-afd3ab4d1710
                    sender_details:
                      account_number: XXXXXXXXXXXX
                      iban: AE940030011XXXXXXXXXXXX
                      name: John Doe
                    recipient_details:
                      account_number: XXXXXXXXXXXX
                      iban: AE870200000XXXXXXXXXXXX
                      name: Al Fulani
                    amount: 61.4
                    currency: AED
                    description: 77f0c07e7b7b4677bb056261f9eead0c
                    submission_timestamp: '2021-05-18T13:58:03.427045Z'
                    initiation_timestamp: '2021-05-18T13:58:42.445103Z'
                    status: ACCEPTED_BY_BANK
                    bank_transaction_reference: 0492981211381081
                  payment_destination:
                    id: 95c29647-c568-40d7-8710-3e330de1b5f2
                    bank_identifier: HSBC_UAE
                    name: Acme Corp.
                    iban: AE870200000XXXXXXXXXXXX
                    display_name: Acme Corp.
                    account_number: XXXXXXXXXXXX
                    swift_code: BBMEAEAD
                    status: CONFIRMED
                    address: Acme Towers, 51st Floor
                    country: ARE
                    city: Dubai
                    default: true
                    owner_type: APPLICATION
                page:
                  number: 0
                  size: 50
                  total_elements: 1
                  total_pages: 1
          headers: {}
      security:
      - bearer: []
  /payments/v1/intents/{payment_intent_id}:
    get:
      summary: Get Payment Intent
      deprecated: false
      description: The Payment intent is the contract between your backend and Lean to certify that you will request a payment from your customer of a specified amount and currency. In order to initiate a payment, the `payment_intent_id` must be provided into the `pay()` method of the LinkSDK.
      operationId: getPaymentIntentById
      tags:
      - Payment Intents
      parameters:
      - name: payment_intent_id
        in: path
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentIntent'
              example:
                payment_intent_id: 77f0c07e-7b7b-4677-bb05-6261f9eead0c
                customer_id: 89bf7bf8-89cb-42e5-8332-eeef869a2524
                amount: 61.4
                currency: AED
                description: 77f0c07e7b7b4677bb056261f9eead0c
                payments:
                - id: 25c90cc6-67dc-4193-a6e9-a7c875fcc0af
                  payment_intent_id: 77f0c07e-7b7b-4677-bb05-6261f9eead0c
                  payment_source_id: b6fba7da-1054-5e82-8a9a-afd3ab4d1710
                  sender_details:
                    account_number: XXXXXXXXXXXX
                    iban: AE940030011XXXXXXXXXXXX
                    name: John Doe
                  recipient_details:
                    account_number: XXXXXXXXXXXX
                    iban: AE870200000XXXXXXXXXXXX
                    name: Al Fulani
                  amount: 61.4
                  currency: AED
                  description: 77f0c07e7b7b4677bb056261f9eead0c
                  submission_timestamp: '2021-05-18T13:58:03.427045Z'
                  initiation_timestamp: '2021-05-18T13:58:42.445103Z'
                  status: ACCEPTED_BY_BANK
                  bank_transaction_reference: 0492981211381081
                payment_destination:
                  id: 95c29647-c568-40d7-8710-3e330de1b5f2
                  bank_identifier: HSBC_UAE
                  name: Acme Corp.
                  iban: AE870200000XXXXXXXXXXXX
                  display_name: Acme Corp.
                  account_number: XXXXXXXXXXXX
                  swift_code: BBMEAEAD
                  status: CONFIRMED
                  address: Acme Towers, 51st Floor
                  country: ARE
                  city: Dubai
                  default: true
                  owner_type: APPLICATION
          headers: {}
      security:
      - bearer: []
components:
  schemas:
    PaymentIntent:
      type: object
      properties:
        payment_intent_id:
          type: string
          format: uuid
          description: The unique identifier for the Payment Intent.
        customer_id:
          type: string
          description: The Customer object associated with the Payment Intent.
        amount:
          type: number
          description: The amount that should be charged to the customer.
          format: float
        currency:
          type: string
          minLength: 3
          maxLength: 3
          examples:
          - AED
          - USD
          description: The currency that the customer will make the payment in.
        description:
          type: string
          description: The description submitted to the bank as a reference when initiating a payment. Can be used for reconciliation. By default this value is a the Payment Intent UUID without hyphens but you can also specify the description upon creation of a payment intent.
        payments:
          type: array
          items:
            $ref: '#/components/schemas/Payment'
          description: An array of Payment Initiation(s) - currently there will only ever be one Payment object within the array once a user has started to complete a payment.
        payment_destination:
          type: object
          properties:
            id:
              type: string
              format: uuid
              description: The unique identifier for the Payment Destination object.
            status:
              type: string
              enum:
              - CONFIRMED
              - PENDING
              description: The status of the Destination
            default:
              type: string
              description: When `true` this Destination is automatically populated into Payment Intents where an alternative `payment_destination_id` is not provided.
            name:
              type: string
              description: The name of the legal entity that owns the account.
            iban:
              type: string
              description: 'The IBAN of the account.

                This is required for all countries except for the US.'
            display_name:
              type: string
              description: The friendly display name for the account. This is rendered in the LinkSDK when referencing the Destination.
            address:
              type: string
              description: The address of the owner of the destination bank account has registered with the bank.
            city:
              type: string
              description: The city that the holding financial institution is located in.
            country:
              type: string
              description: The three letter ISO code for the holding financial institution's country.
            swift_code:
              type: string
              description: The SWIFT Code for the bank account - required for most international destinations
            account_number:
              type: string
              description: The account number for the account.
            customer_id:
              type: string
              description: The Customer object associated with this account. This field is optional, and will designate the Destination as owned by the application if not provided.
            owner_type:
              type: string
              description: Establishes the ownership of the Destination
              enum:
              - APPLICATION
              - CUSTOMER
          required:
          - id
          - status
          - default
          - name
          - display_name
          - address
          - city
          - country
          - account_number
      required:
      - payment_intent_id
      - customer_id
      - amount
      - currency
      - description
      - payments
      - payment_destination
    Pagination:
      type: object
      properties:
        number:
          type: integer
          description: The current page being returned by the API
        size:
          type: integer
          description: The page size requested
        total_elements:
          type: integer
          description: The total number of elements in all pages
        total_pages:
          type: integer
          description: The total number of pages retrievable
      required:
      - number
      - size
      - total_elements
      - total_pages
    Payment:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for this payment.
          format: uuid
        payment_intent_id:
          type: string
          description: The Payment Intent identifier responsible for generating the Payment.
          format: uuid
        payment_source_id:
          type: string
          description: The identifier for the payment source object from which the payment was initiatied.
          format: uuid
        sender_details:
          type: object
          properties:
            account_number:
              type: string
            iban:
              type: string
            name:
              type: string
          required:
          - account_number
          - iban
          - name
          description: The account details for the customer sending the payment. Includes account number, name of the account holder and IBAN.
        recipient_details:
          type: object
          properties:
            account_number:
              type: string
            iban:
              type: string
            name:
              type: string
          required:
          - account_number
          - iban
          - name
          description: Details for the recipient of the Payment, generated from the details available in the payment_destination.
        amount:
          type: number
          description: The amount the charge was initiated for.
        currency:
          type: string
          description: The currency the payment was initiated with.
        description:
          type: string
          description: The description submitted to the bank as a reference when initiating a payment. Can be used for reconciliation. By default this value is a the Payment Intent UUID without hyphens but you can also specify the description upon creation of a payment intent.
        submission_timestamp:
          type: string
          description: The time the Payment Initiation was submitted.
        initiation_timestamp:
          type: string
          description: The time the Payment Initiation was started.
        status:
          type: string
          enum:
          - AWAITING_LOGIN_MFA
          - AWAITING_PAYMENT_MFA
          - AWAITING_APP_AUTH
          - FAILED
          - PENDING_WITH_BANK
          - ACCEPTED_BY_BANK
          description: 'The current status of the payment - see Payments Errors for a list of available MFAs. '
        bank_transaction_reference:
          type: string
          description: The transaction reference number supplied by the initiating bank on successful initiation of a transfer. Can be used for reconciliation.
      required:
      - id
      - payment_intent_id
      - payment_source_id
      - sender_details
      - recipient_details
      - amount
      - currency
      - description
      - submission_timestamp
      - initiation_timestamp
      - status
      - bank_transaction_reference
  securitySchemes:
    bearer:
      type: http
      scheme: bearer