Airtm Payments / Payouts API

## Overview The Payouts endpoint enables your organization to send payments to recipients worldwide through the Airtm platform. This powerful endpoint supports both individual and bulk payment processing, making it ideal for paying employees, contractors, freelancers, vendors, or any other recipients who have Airtm accounts. ## What are Payouts? Payouts represent outgoing payments from your enterprise account to recipient users. The payout process is designed to be flexible, secure, and reliable, with multiple options for creating and managing payments based on your specific needs. ### Key Features - **Two-Step or One-Step Processing** - Choose your preferred workflow - **Real-Time Status Tracking** - Monitor payment progress instantly - **Comprehensive Recipient Management** - Support for new and existing users - **Webhook Integration** - Receive instant status notifications ## Payment Processing Options ### 1. Two-Step Process (Create + Commit) **Best for:** Careful review and approval workflows 1. **Create Payout** - Generate payout instruction 2. **Review Details** - Verify recipient and amount information 3. **Commit Payout** - Execute the payment ### 2. One-Step Process (Direct) **Best for:** Automated systems and immediate processing - **Create and Execute** - Single API call processes payment immediately - **Streamlined Workflow** - Reduces API calls and complexity - **Instant Processing** - Payment begins processing immediately ## Status Management ### Payout Status Values | Status | Final? | Description | Next Actions | | ----------- | ------ | ---------------------------------------------------------------- | --------------------------- | | `created` | No | Payout instruction created, awaiting commit | Call commit endpoint | | `committed` | No | Payout committed and queued for processing | Monitor status updates | | `pending` | No | Awaiting recipient action (account creation, verification, etc.) | Wait for recipient action | | `completed` | Yes | Payment successfully delivered to recipient | None - payment complete | | `canceled` | Yes | Payout canceled, funds returned to sender | None - transaction reversed | | `failed` | Yes | Payment failed due to processing error | Contact support if needed | ### Detailed Status Descriptions #### Created Status - Payout instruction has been successfully created - Funds are not yet committed from your account - You can still modify or cancel the payout - Must call commit endpoint to proceed #### Committed Status - Payout has been committed for processing - Funds are placed in escrow - Processing has begun but not yet completed - Cannot be canceled once committed #### Pending Status The payout is waiting for recipient action: - **New User:** Recipient needs to create an Airtm account - **Verification Required:** Recipient exceeds $1,000 threshold and needs ID verification - **US Recipients:** Must complete ID verification and configure payment method - **Account Issues:** Recipient account may have restrictions A pending payout can still be canceled before it is processed. #### Completed Status - Payment has been successfully processed - Funds have been credited to recipient's account - Final status - no further action needed - Success webhook sent (if configured) #### Canceled Status - Payout was canceled before or during processing - Funds have been returned to your account - Can occur due to: - Manual cancellation - Recipient unable to receive funds - Account restrictions - Compliance issues #### Failed Status - Rare occurrence of processing failure - Contact [enterprise@airtm.com](mailto:enterprise@airtm.com) for assistance - May require manual intervention to resolve ## Recipient Management ### New Recipients When sending to users who don't have Airtm accounts: 1. **Payout Created** - Payment is created with recipient email 2. **Email Notification** - Recipient receives invitation to join Airtm 3. **Account Creation** - Recipient creates Airtm account 4. **Payment Completion** - Funds are automatically credited ### Existing Recipients For users with existing Airtm accounts: - Payments are typically processed faster - Fewer verification requirements - Direct credit to their account balance ### Recipient Verification Requirements #### $1,000+ Threshold Recipients receiving amounts that bring their total inflow over $1,000 must: - Complete ID verification - Provide government-issued identification - Verify personal information #### US Recipients All US-based recipients must: - Complete ID verification regardless of amount - Configure a valid payment method - Meet additional compliance requirements

Operations 5

POST payouts Create payout #
POST payouts/{payoutId}/commit Commit payout #
POST payouts/one-step One step payout #
GET payouts/events/:payoutId Get payout event #
POST payouts/{payoutId}/cancel Cancel pending payouts #

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/airtm-payments-payouts-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

airtm-payments-payouts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Airtm Enterprise API V1 Payments / Payouts API
  version: 1.0.0
  description: '## Introduction


    Welcome to Airtm''s Enterprise Payments API - a comprehensive solution for programmatic payment processing that enables organizations worldwide to send and receive payments efficiently and securely.'
servers:
- url: https://payments.air-pay.io
- url: https://payments.static-stg.tests.airtm.org
tags:
- name: Payments / Payouts
  description: '## Overview


    The Payouts endpoint enables your organization to send payments to recipients worldwide through the Airtm platform.'
paths:
  payouts:
    post:
      security:
      - basicAuth: []
      tags:
      - Payments / Payouts
      summary: Create payout
      description: 'This endpoint allows you to create a payout instruction. In the request

        body, information about the payout such as the recipient''s email,

        description, amount, and any URLs needed for confirmation or failure

        redirects should be provided. Upon successful creation, the API returns

        a response containing the details of the newly created payout, including

        a unique ID.


        After making a call to this endpoint, no money is moved yet. To finish

        moving the money to a user you must call the payouts/:id/commit endpoint

        with the id from this response.'
      operationId: Payments _ Payouts_payments-payouts/create-payout
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: This is the unique identifier for the payout.
                    example: 57f384ac-c5f7-492a-aaf7-daa928de9b40
                    format: uuid
                  partner_id:
                    type: string
                    description: 'This is the unique identifier of the partner associated

                      with the payout.

                      '
                    example: 2abf29df-4c6d-4de4-ae55-d26556ac5475
                    format: uuid
                  status:
                    type: string
                    description: 'This field indicates the current status of the payout. For

                      example, "created" means the payout has been successfully

                      created.

                      '
                    example: created
                  amount:
                    type: Number
                    description: Amount in USD to be paid out.
                    example: 1
                  description:
                    type: string
                    description: 'An arbitrary string describing the payment. This

                      information is displayed to the recipient. It''s

                      recommended that the string summarizes the purpose of the

                      payment.

                      '
                    example: Payout test
                  confirmation_uri:
                    type: string
                    description: 'An endpoint / webhook on your server which we will POST

                      the payout JSON to when the payout is successfully

                      completed.

                      '
                    example: https://your.site/success
                  cancel_uri:
                    type: string
                    description: 'An endpoint / webhook on your servers which we will POST

                      the payout JSON to when the payout has been canceled.

                      '
                    example: http://your.site/payout/cancel
                  failure_uri:
                    type: string
                    description: 'An endpoint / webhook on your servers which we will POST

                      the payout JSON to when we''re unable to process the

                      payout.

                      '
                    example: https://your.site/failure
                  failure_reason:
                    type: string
                    description: 'This field will be populated if the payout fails,

                      providing a reason for the failure.

                      '
                  callback_uri:
                    type: string
                    description: 'URL to which the API will send a callback once the payout

                      operation is complete.

                      '
                  airtm_operation_id:
                    type: string
                    description: 'Unique identifier for the payout operation within the

                      Airtm system.

                      '
                  created_at:
                    type: string
                    description: Timestamp of when the payout was created.
                    example: '2019-03-05T18:48:07.000Z'
                  updated_at:
                    type: string
                    description: Timestamp of the last update made to the payout.
                    example: '2019-03-05T18:48:07.000Z'
                  airtm_user_email:
                    type: string
                    description: 'This is the email of the Airtm user who is associated with

                      this payout.

                      '
                    example: john.doe@gmail.com
                  airtm_user_id:
                    type: string
                    description: 'This is the unique identifier for the AirTM user who is

                      associated with this payout.

                      '
                    example: d2f17c25-4aa2-46c2-aecb-498ffdd23aa2
                  operation_type:
                    type: string
                    description: 'This field indicates the type of operation. In this case,

                      it''s a "payout".

                      '
                    example: payout
                  airtm_operation_hash:
                    type: string
                    description: 'Unique hash for the payout operation within the Airtm

                      system.

                      '
                  reason_code:
                    type: string
                    description: 'This field will be populated if the payout failed or

                      canceled, providing a code to referenced in the codes

                      catalog.

                      '
                    example: ''
      requestBody:
        description: Request body
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The recipient''s email address that is associated with their

                    Airtm account

                    '
                  example: john.doe@gmail.com
                  format: email
                description:
                  type: string
                  description: 'An arbitrary string describing the payment. This information

                    is displayed to the recipient. It''s recommended that the

                    string summarizes the purpose of the payment.

                    '
                  example: Payout test
                amount:
                  type: number
                  description: The payment amount in USD.
                  example: 1
                confirmation_uri:
                  type: string
                  description: 'An endpoint / webhook on your server which we will POST the

                    payout JSON to when the payout is successfully completed.

                    '
                  example: http://your.site/payout/success
                failure_uri:
                  type: string
                  description: 'An endpoint / webhook on your servers which we will POST the

                    payout JSON to when we''re unable to process the payout.

                    '
                  example: http://your.site/payout/failure
                cancel_uri:
                  type: string
                  description: 'An endpoint / webhook on your servers which we will POST the

                    payout JSON to when the payout has been canceled.

                    '
                  example: http://your.site/payout/canceled
                code:
                  type: string
                  description: 'A unique idempotency key used to prevent duplicate payouts

                    from being created.

                    '
                  example: 1234abcd
              required:
              - email
              - description
              - amount
              - confirmation_uri
              - failure_uri
  payouts/{payoutId}/commit:
    post:
      security:
      - basicAuth: []
      tags:
      - Payments / Payouts
      summary: Commit payout
      description: 'After calling this endpoint, Airtm will execute/process the previously

        received payout instruction. The RESPONSE confirms the reception and

        incorporation of the payout instruction for processing. Funds will be

        deducted from your balance while the payout execution process is being

        carried out.


        Please note that a 200 response doesn''t necessarily mean the money

        moved, it simply means the system is now trying to send the amount. Wait

        for callbacks on `failure_uri`, `confirmation_uri` OR call

        `/operations/:id` to get an update. It may be possible that you need to

        whitelist our IPs in order to be able to receive callbacks.


        The status of the payout will either be `committed`, `pending` or

        `failed`, A `committed` status means that the recipient''s email has been

        identified as an active Airtm user and the payout process has

        successfully started. A `pending` status means that the recipient''s

        email does not have an Airtm account. The payout process will be

        completed when the user signs up at Airtm. A `committed` payout will

        eventually move on to `completed` once the payout execution process

        finishes. Extra information of the recently `completed` payout can be

        queried by calling /operations/:id'
      operationId: Payments _ Payouts_payments-payouts/commit-payout
      parameters:
      - name: payoutId
        in: path
        required: false
        schema:
          type: String
          example: ed7ce4ce-53c2-43f8-aaa8-4afb6cf90cfc
          description: ''
          default: ''
        description: ''
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: 'Unique identifier automatically generated on payout

                      creation.

                      '
                    example: 57f384ac-c5f7-492a-aaf7-daa928de9b40
                  partner_id:
                    type: string
                    description: ID of the partner who created and committed the payout.
                    example: 2abf29df-4c6d-4de4-ae55-d26556ac5475
                  status:
                    type: string
                    description: Payout is commited and is the process of being executed
                    example: COMMITTED
                  amount:
                    type: string
                    description: Amount in USD that was committed.
                    example: '1.00'
                  description:
                    type: string
                    description: Description of the payout, inputted in the creation.
                    example: Payout test
                  confirmation_uri:
                    type: string
                    description: 'An endpoint / webhook on your server which we will POST

                      the payout JSON to when the payout is successfully

                      completed.

                      '
                    example: https://your.site/success
                  cancel_uri:
                    type: String
                    description: 'An endpoint / webhook on your server which we will POST

                      the payout JSON to when the payout is canceled.

                      '
                    example: ''
                  failure_uri:
                    type: string
                    description: 'An endpoint / webhook on your server which we will POST

                      the payout JSON to when the payout fails.

                      '
                    example: https://your.site/failure
                  failure_reason:
                    type: String
                    description: 'This field will be populated if the payout fails,

                      providing a reason for the failure.

                      '
                    example: ''
                  callback_uri:
                    type: String
                    description: 'This is the URL to which the API will send a callback once

                      the payout operation is complete.

                      '
                    example: ''
                  airtm_operation_id:
                    type: string
                    description: 'Unique identifier for the payout operation within the

                      Airtm system.

                      '
                    example: a8bc79c2-cde3-4906-b3f5-5af028b3a57e
                  created_at:
                    type: string
                    description: Timestamp of when the payout was created.
                    example: '2019-03-05T18:48:07.000Z'
                  updated_at:
                    type: string
                    description: 'Timestamp of the last update made to the payout

                      information.

                      '
                    example: '2019-03-05T18:48:21.000Z'
                  airtm_user_email:
                    type: string
                    description: 'This is the email of the Airtm user who is associated with

                      this payout.

                      '
                    example: john.doe@gmail.com
                  airtm_user_id:
                    type: string
                    description: 'This is the unique identifier for the Airtm user who is

                      associated with this payout.

                      '
                    example: d2f17c25-4aa2-46c2-aecb-498ffdd23aa2
                  operation_type:
                    type: string
                    description: 'This field indicates the type of operation. In this case,

                      it''s a "payout".

                      '
                    example: payout
                  code_reason:
                    type: string
                    description: 'This field will be populated if the payout failed or

                      canceled, providing a code to referenced in the codes

                      catalog.

                      '
                    example: ''
        '404':
          description: Payout not found
          content:
            application/graphql:
              schema:
                type: object
                properties:
                  raw:
                    type: String
                    description: ''
                    example: Not Found
      requestBody:
        description: Request body
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: {}
  payouts/one-step:
    post:
      security:
      - basicAuth: []
      tags:
      - Payments / Payouts
      summary: One step payout
      description: 'This endpoint is a combination of the Create Payout and the Commit

        Payout endpoints. If you want to do a payout in just one API call

        instead of a two-step process outlined in Create / Commit Payout, you

        can now use this one-step endpoint.


        The usage is exactly the same as the **Create payout** endpoint at POST

        /payouts with the only difference being that the second step (commit

        payout) will immediately be executed and there is no need to make a call

        to the commit endpoint. The RESPONSE of this endpoint will indicate

        whether the payout instruction was received and incorporated

        successfully (`committed` / `pending`) or if the creation instruction

        failed (`failed`). Identically as in the payouts/{payoutId}/commit

        endpoint, the effective result of the executed payout is reported on the

        callbacks URI'
      operationId: Payments _ Payouts_payments-payouts/one-step-payout
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: 'Unique identifier automatically generated on payout

                      creation.

                      '
                    example: 57f384ac-c5f7-492a-aaf7-daa928de9b40
                  partner_id:
                    type: string
                    description: ID of the partner who created and committed the payout.
                    example: 2abf29df-4c6d-4de4-ae55-d26556ac5475
                  status:
                    type: string
                    description: Payout is commited and is the process of being executed
                    example: COMMITTED
                  amount:
                    type: string
                    description: Amount in USD that was committed.
                    example: '1.00'
                  description:
                    type: string
                    description: Description of the payout, inputted in the creation.
                    example: Payout test
                  confirmation_uri:
                    type: string
                    description: 'An endpoint / webhook on your server which we will POST

                      the payout JSON to when the payout is successfully

                      completed.

                      '
                    example: https://your.site/success
                  cancel_uri:
                    type: string
                    description: 'An endpoint / webhook on your servers which we will POST

                      the payout JSON to when the payout has been canceled.

                      '
                    example: http://your.site/payout/cancel
                  failure_uri:
                    type: string
                    description: 'An endpoint / webhook on your server which we will POST

                      the payout JSON to when the payout fails.

                      '
                    example: https://your.site/failure
                  failure_reason:
                    type: string
                    description: 'This field will be populated if the payout fails,

                      providing a reason for the failure.

                      '
                  callback_uri:
                    type: string
                    description: 'URL to which the API will send a callback once the payout

                      operation is complete.

                      '
                  airtm_operation_id:
                    type: string
                    description: 'Unique identifier for the payout operation within the

                      Airtm system.

                      '
                    example: a8bc79c2-cde3-4906-b3f5-5af028b3a57e
                  created_at:
                    type: string
                    description: Timestamp of when the payout was created.
                    example: '2019-03-05T18:48:07.000Z'
                  updated_at:
                    type: string
                    description: Timestamp of the last update made to the payout.
                    example: '2019-03-05T18:48:21.000Z'
                  airtm_user_email:
                    type: string
                    description: 'This is the email of the Airtm user who is associated with

                      this payout.

                      '
                    example: john.doe@gmail.com
                  airtm_user_id:
                    type: string
                    description: 'This is the unique identifier for the Airtm user who is

                      associated with this payout.

                      '
                    example: d2f17c25-4aa2-46c2-aecb-498ffdd23aa2
                  operation_type:
                    type: string
                    description: 'This field indicates the type of operation. In this case,

                      it''s a "payout".

                      '
                    example: payout
                  airtm_operation_hash:
                    type: string
                    description: 'Unique hash for the payout operation within the Airtm

                      system.

                      '
                    example: 4AA2FV46C2CDAECB
                  reason_code:
                    type: string
                    description: 'This field will be populated if the payout failed or

                      canceled, providing a code to referenced in the codes

                      catalog.

                      '
                    example: ''
      requestBody:
        description: Request body
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The recipient''s email address that is associated with their

                    Airtm account.

                    '
                  example: john.doe@gmail.com
                description:
                  type: string
                  description: 'An arbitrary string describing the payment. This information

                    is displayed to the recipient. It''s recommended that the

                    string summarizes the purpose of the payment.

                    '
                  example: Payout test
                amount:
                  type: number
                  description: The payment amount in USD.
                  example: 1
                confirmation_uri:
                  type: string
                  description: 'An endpoint / webhook on your server which we will POST the

                    payout JSON to when the payout is successfully completed.

                    '
                  example: http://your.site/payout/success
                failure_uri:
                  type: string
                  description: 'An endpoint / webhook on your servers which we will POST the

                    payout JSON to when we''re unable to process the payout.

                    '
                  example: http://your.site/payout/failure
                cancel_uri:
                  type: string
                  description: 'An endpoint / webhook on your servers which we will POST the

                    payout JSON to when the payout has been canceled.

                    '
                  example: http://your.site/payout/cancel
                code:
                  type: string
                  description: 'A unique idempotency key used to prevent duplicate payouts

                    from being created.

                    '
                  example: 1234abcd
              required:
              - email
              - description
              - amount
              - confirmation_uri
              - failure_uri
  payouts/events/:payoutId:
    get:
      security:
      - basicAuth: []
      tags:
      - Payments / Payouts
      summary: Get payout event
      description: 'This endpoint populates whenever either a Success URI or Failure URI are

        called; this information helps track the status and whatever is

        happening with the committed Payout.'
      operationId: Payments _ Payouts_payments-payouts/get-payout-event
      parameters: []
      responses:
        '200':
          description: OK - If payout hasn't been committed or ID not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    description: ''
                    example: {}
                    properties: {}
                    required: []
                  code:
                    type: string
                    description: ''
                    example: '352018'
                  message:
                    type: string
                    description: ''
                    example: No payout event found for supplied id
                  displayToUser:
                    type: boolean
                    description: ''
                    example: true
  payouts/{payoutId}/cancel:
    post:
      security:
      - basicAuth: []
      tags:
      - Payments / Payouts
      summary: Cancel pending payouts
      description: 'This endpoint allows users to cancel specific `PENDING` individual

        payouts—those that have been created and committed but where the

        recipient has not yet signed up on Airtm.com.


        To manually cancel a pending payout, users must provide the transaction

        `id`, which can be retrieved when creating the payout through either the

        **Create & Commit** or **One-Step** payout flows. Pending payouts will

        automatically cancel after 90 days (by default, other time periods are

        avilable in dashboard settings) from the creation date.


        Once canceled:


        * Funds are automatically returned to the user''s Airtm balance.


        * The individual payout status is updated to `CANCELED`.


        * The response will include all relevant details of the canceled

        payout.


        Additional information about canceled payouts can be accessed through

        the **Enterprise Portal** (enterprise.airtm.com) or by querying

        **Operations** .


        **Note:** _This feature is only available for partners who have migrated

        to the new infrastructure solution based on Bridge Ventures._'
      operationId: Payments _ Payouts_payments-payouts/cancel-pending-payments-copy-1
      parameters:
      - name: payoutId
        in: path
        required: true
        schema:
          type: String
          example: ''
          description: ''
          default: ''
        description: ''
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: ''
                    example: 5d8950c9-63f6-481f-a2b1-719ebe62ac74
                  amount:
                    type: string
                    description: ''
                    example: '0.02'
                  confirmation_uri:
                    type: string
                    description: ''
                    example: http://your.site/payout/success
                  failure_uri:
                    type: string
                    description: ''
                    example: http://your.site/payout/failure
                  failure_reason:
                    type: string
                    description: ''
                    example: ''
                  airtm_user_id:
                    type: string
                    description: ''
                    example: d2f17c25-4aa2-46c2-aecb-498ffdd23aa2
                  airtm_user_email:
                    type: string
                    description: ''
                    example: john.doe@gmail.com
                  created_at:
                    type: string
                    description: ''
                    example: '2024-05-16T15:53:12.016Z'
                  updated_at:
                    type: string
                    description: ''
                    example: '2025-02-17T17:34:39.051Z'
                  status:
                    type: string
                    description: ''
                    example: CANCELED
                  description:
                    type: string
                    description: ''
                    example: Testing
                  airtm_operation_id:
                    type: string
                    description: ''
                    example: 5d8950c9-63f6-481f-a2b1-719ebe62ac74
                  operation_type:
                    type: string
                    description: ''
                    example: payout
                  airtm_operation_hash:
                    type: string
                    description: ''
                    example: 63F6ZU481FQEA2B1
                  partner_id:
                    type: string
                    description: ''
                    example: a78a2be5-cdec-4480-b40c-eb3c33a4f8f2
        '400':
          description: Payout is not in pending status.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: ''
                    example: '415055'
                  data:
                    type: object
                    description: ''
                    properties:
                      payoutId:
                        type: string
                        description: ''
                        example: f1bb7777-814f-497c-b95b-f9177f680f88
                    required: []
                  displayToUser:
                    type: boolean
                    description: ''
                    example: false
                  message:
                    type: string
                    description: ''
                    example: 'Payout cannot be canceled as it is not in a pending

                      status.

                      '
        '500':
          description: 'Not valid {payoutId} '
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: ''
                    example: 'invalid input syntax for type uuid: {payoutId}'
      requestBody:
        description: Request body
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: {}
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic