---
updatedAt: 2026-05-04T19:18:29.000Z
agentTools:
  siteIndex: https://developers.pismo.io/llms.txt
  projectIndex: https://developers.pismo.io/pismo-docs/llms.txt
---

# Schedule transfer(s) V2

Schedule a Pix-out transfer or Pix-out recurring transfers. 

This endpoint gives you more scheduling options than the version 1 [Schedule transfer](https://developers.pismo.io/pismo-docs/reference/post-schedule) endpoint. These include additional options (`scheduler_details` object) for recurring transfers.

As with the [Pix-out transfer](ref:post-pix-out-transfer) endpoint, if you are using a key or QR Code, you need to call  <a href="https://developers.pismo.io/pismo-docs/reference/post-v2-pix-keys-validate">Validate DICT key</a> or <a href="https://developers.pismo.io/pismo-docs/reference/post-qr-code">Get and validate QR Code</a> before calling this endpoint. You need to enter the `end_to_end_id` returned from those calls here. If you are not using a key or QR Code, this endpoint generates and returns an `end_to_end_id` value you can use in other endpoints.

The `end_to_end_id` field is a Brazil Central Bank (BCB) requirement to track Pix transactions.  Basically, there are two steps to a Pix transaction: 1. Initialize a transaction and 2. Confirm a transaction. The `end_to_end_id` is sent to the BCB in both steps in order to identify all transaction information.

This endpoint directly generates an [Instant pay scheduler status changed](https://developers.pismo.io/events/docs/instantpay-scheduler-scheduler-status-change-1) event.

To create a recurring payment, set `type` = `RECURRING` and pass a value for `cycle`. This property has 2 attributes and should be set as shown in the sample table below: 

`cycle.type` | `cycle.count` | New transaction created every:
---------- | ----------- | ------------ 
`DAILY`      | 5           | 5 days
`WEEKLY`     | 2           | 2 weeks
`MONTHLY`    | 1           | 1 month
`MONTHLY`    | 2           | 2 months
`YEARLY`     | 1           | 1 year

**Notes**

* `WEEKLY` sets the `start_date` weekday. For a scheduler with `start_date` = Thursday, the next transaction is always on a Thursday.

* `MONTHLY / YEARLY` sets the `start_date` day. For a scheduler with `start_date` = `2024-10-12`, the next transaction is always created on day 12 of each cycle count. Now, for days `29`, `30` and `31`, the scheduler uses the previous month's last day when that day doesn't exist in the current month. For example, considering a scheduler starting at `2024-01-30`, the next transaction is created on `2024-02-29`.

**Preset schedules (Beta)**

> ⚠️ The `PRESET` scheduler type is currently in **beta** and may change. Reach out to Pismo before using it in production.

To create a preset payment: set `type` = `PRESET` and provide the full list of executions in `scheduler_details.executions`. 
Each item has a `due_date` (`YYYY-MM-DD`) and a pre-established `end_to_end_id`. From 1 to 60 executions are supported and are all created upfront in a single operation, so `start_scheduler_date`, `end_scheduler_date` and `cycle` must **NOT** be passed for this type — the schedule window is derived from the executions' `due_date`.

Once created, the executions can be listed through the [List Pix scheduler executions](ref:get-scheduler-executions) endpoint. Because they already exist, the [Get scheduled transfer](ref:get-scheduled-pix-payment) endpoint does not return `executions_preview` for `PRESET` schedulers.

The optional `processing_code` (up to 6 alphanumeric characters) is propagated to the resulting Pix-out transfer.

**Events**

* When the transfer takes place, <a href="https://developers.pismo.io/events/docs/pix-pix-out-1">Pix-out notification received</a> and <a href="https://developers.pismo.io/events/docs/pix-financial-reconciliation-1">Pix reconciliation notification received </a> events are generated.

* Also, when the transfer takes place, a <a href="https://developers.pismo.io/events/docs/pix-pix-in-1">Pix-in notification received</a> event is generated when the funds are deposited in the payee's account, which can be a Pismo account or an external account.

* For all events, the `status` or `result` field indicates operation success or failure.

For more information, refer to the [Pix instant payments](doc:pix-instant-payments) guide.

**Note:** This endpoint takes an account token - an access token encoded with a Pismo accound ID.


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Instant payments - Pix payments",
    "description": "API to handle Pix transactions",
    "contact": {
      "name": "API Support",
      "url": "https://developers.pismo.io/support/"
    },
    "license": {
      "name": "Copyright Pismo"
    },
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://sandbox-cdn.pismolabs.io",
      "description": "Sandbox API server for testing"
    },
    {
      "url": "https://sandbox-cdn.pismolabs.io/inst-pull-pay",
      "description": "Sandbox API server for testing instant pull pay."
    }
  ],
  "tags": [
    {
      "name": "Scheduled transfers V2"
    }
  ],
  "components": {
    "parameters": {
      "AuthHeader": {
        "in": "header",
        "name": "Authorization",
        "required": true,
        "description": "Account token - an access token encoded with a Pismo account ID. Tokens can expire quickly, which can result in a <b>401 Unauthorized</b> message.",
        "schema": {
          "type": "string",
          "example": "Bearer eyJhbGci...IUzUx"
        }
      },
      "CIDheader": {
        "name": "x-cid",
        "description": "The Correlation ID UUID field links related API requests and events. The `x-cid` can help the Pismo engineering team track everything related to a call. If not passed, this field is automatically generated.\n",
        "in": "header",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "IdempotencyKeyHeader": {
        "name": "Idempotency-Key",
        "in": "header",
        "description": "A unique ID to ensure the operation remains idempotent, allowing for operation repitition without causing unintended effects or duplication. An idempotent operation is one that can be applied multiple times, yet the outcome remains the same. it ensures that network errors, retries, or failures can occur without introducing inconsistencies.\n",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "AccountNumber": {
        "type": "string",
        "description": "Account number.",
        "maxLength": 20,
        "example": "98765432"
      },
      "AccountType": {
        "type": "string",
        "enum": [
          "CACC",
          "SLRY",
          "SVGS",
          "TRAN"
        ],
        "maxLength": 4,
        "description": "Account type:  <br />\n  `CACC` - Checking/current account.  Known as \"conta corrente\" in Portuguese, this is a bank account type designed for everyday financial transactions and is the most common type individuals and businesses use for day-to-day banking.<br />\n  `SVGS` - Savings account<br />\n  `TRAN` - Payment account. Payment institutions offer payment accounts to move funds and make payments, while banks offer checking accounts that include full financial services such as credit and investments.<br />\n  `SLRY` - Salary account. Employer deposits a fixed amount every month.<br />\n",
        "example": "TRAN"
      },
      "Amount": {
        "type": "number",
        "description": "Amount to be transferred.",
        "example": 1050.44
      },
      "Bank": {
        "type": "string",
        "description": "<a href=\"https://bank.codes/numero-do-banco/bank/banco-central-do-brasil/\" target=\"_blank\">ISPB (Identifcador do Sistema de Pagamento Brazil)</a> - the Brazilian Payment System ID for the receiving bank, an 8-digit value.",
        "maxLength": 8,
        "example": "237"
      },
      "BeneficiaryID": {
        "type": "string",
        "maxLength": 36,
        "description": "Beneficiary ID. This ID created when the [Register beneficiary](https://developers.pismo.io/pismo-docs/reference/post-intl-bank-accounts-v1-bank-accounts-beneficiaries) endpoint is called.\n",
        "example": "97c96d96-9b87-404b-88e5-287f2b0e6e0a"
      },
      "Branch": {
        "type": "string",
        "description": "This could be a bank-assigned branch ID or the branch's ISPB number.",
        "maxLength": 4,
        "example": "011"
      },
      "customer.DetailMessage": {
        "type": "object",
        "properties": {
          "external": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/customer.ExternalMessage"
            }
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/customer.ParameterMessage"
            }
          },
          "payload": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/customer.PayloadMessage"
            }
          }
        }
      },
      "customer.Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error's code.",
            "example": "EPT0001"
          },
          "details": {
            "$ref": "#/components/schemas/customer.DetailMessage"
          },
          "message": {
            "type": "string",
            "description": "Error's message.",
            "example": "User not found"
          }
        }
      },
      "customer.ExternalMessage": {
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "Error code.",
            "example": "PBE315"
          },
          "message": {
            "type": "string",
            "description": "Error message.",
            "example": "Generic error"
          }
        }
      },
      "customer.ParameterMessage": {
        "type": "object",
        "required": [
          "field",
          "message"
        ],
        "properties": {
          "field": {
            "type": "string",
            "description": "Parameter field",
            "example": "Query parameter"
          },
          "message": {
            "type": "string",
            "description": "Message about parameter",
            "example": "Generic error"
          }
        }
      },
      "customer.PayloadMessage": {
        "type": "object",
        "required": [
          "field",
          "message"
        ],
        "properties": {
          "field": {
            "type": "string",
            "description": "Payload parameter",
            "example": "Entity.field"
          },
          "message": {
            "type": "string",
            "description": "Message about error",
            "example": "Generic error"
          }
        }
      },
      "DocumentNumber": {
        "type": "string",
        "description": "A government document number, such as a Social Security number (US) or Cadastro de Pessoas Físicas number (Brazil). Must be numeric with 11-14 digits.\n",
        "minLength": 1,
        "maxLength": 14,
        "example": "123412341234"
      },
      "EndToEndID": {
        "type": "string",
        "description": "This field is a Brazil Central Bank (BCB) requirement to track all steps of Pix transactions. \nBasically, there are two steps to a Pix transaction:\n    1. Initialize a transaction \n    2. Confirm a transaction\nThe `end_to_end_id` is sent to the BCB in both steps in order to identify all transaction information. \n",
        "example": "E3030629420200808195101608910248"
      },
      "FlexControls": {
        "type": "object",
        "description": "[Flex control ID](https://developers.pismo.io/pismo-docs/docs/flex-controls#pix-and-accounts) and schedule limit checking before creating a new scheduler.\n",
        "required": [
          "pix_limit_id"
        ],
        "properties": {
          "pix_limit_id": {
            "type": "string",
            "description": "Rule ID for scheduled Pix limit",
            "example": "279207b0-d553-424e-a454-8d704cca3702"
          }
        }
      },
      "InitiationType2": {
        "type": "string",
        "enum": [
          "MANUAL",
          "DICT",
          "STATIC_QRCODE",
          "DYNAMIC_QRCODE"
        ],
        "maxLength": 20,
        "description": "Initiation type:  \n\n  `MANUAL` - Manually initiated. Key is not used - bank account, bank code, document number, and branch are used for identification.\n\n  `DICT` - Diretorio de Identificadores de Contas de Transação (Transaction accounts ID directory). Pix/DICT key is used for identification.\n\n  `DYNAMIC_QRCODE` - The amount and other details for a dynamic code are included automatically. \n  \n",
        "example": "DICT"
      },
      "IsDeviceRegistered": {
        "type": "boolean",
        "description": "Is device registered to do a Pix-out transfer? Default is `true`.",
        "example": true
      },
      "ISPB": {
        "type": "string",
        "description": "<a href=\"https://bank.codes/numero-do-banco/bank/banco-central-do-brasil/\" target=\"_blank\">ISPB (Identifcador do Sistema de Pagamento Brazil)</a> - the Brazilian Payment System ID, an 8-digit value.",
        "maxLength": 8,
        "example": "60701190"
      },
      "Key": {
        "maxLength": 77,
        "type": "string",
        "description": "Pix key value.",
        "example": "email@email.com"
      },
      "Name": {
        "type": "string",
        "description": "Name",
        "maxLength": 200,
        "example": "Walter Melon"
      },
      "PersonType": {
        "type": "string",
        "description": "Person type:  \n* `LEGAL_PERSON` - An actual person with legal rights.\n* `NATURAL_PERSON` - An entity, such as an organization or company.\n",
        "enum": [
          "LEGAL_PERSON",
          "NATURAL_PERSON"
        ],
        "example": "NATURAL_PERSON"
      },
      "ProcessingType": {
        "type": "string",
        "description": "Scheduler processing type:\n\n* `ONCE` - A single scheduled transfer executed on `start_scheduler_date`.\n\n* `RECURRING` - Transfers created over time according to `cycle`, from `start_scheduler_date` until `end_scheduler_date`.\n\n* `PRESET` - **(Beta)** The caller pre-establishes all executions in the `scheduler_details.executions` list. `start_scheduler_date`/`end_scheduler_date` and `cycle` are **NOT** used - the schedule window is derived from the executions' `due_date`.\n",
        "enum": [
          "ONCE",
          "RECURRING",
          "PRESET"
        ],
        "example": "RECURRING"
      },
      "QRcodeAddInfo": {
        "type": "array",
        "description": "Additional QR Code information.",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "QR Code name",
              "example": "Discount"
            },
            "value": {
              "type": "string",
              "description": "QR Code value",
              "example": "Paying until the 5th, there will be a 10% discount"
            }
          }
        }
      },
      "Records": {
        "type": "object",
        "properties": {
          "tax_type": {
            "$ref": "#/components/schemas/TaxType"
          },
          "amount": {
            "$ref": "#/components/schemas/TaxAmount"
          }
        }
      },
      "RemittanceInformation": {
        "type": "string",
        "description": "Remittance information. Information from payee when transaction is a static QR Code.\n",
        "maxLength": 140
      },
      "SchedulerDateEnd": {
        "type": "string",
        "description": "Date to stop the scheduled payment (maximum = 1 year). \n\nFormat = YYYY-MM-DD. \n\n**REQUIRED** for `type` = `ONCE` or `RECURRING`. \n\nMust **NOT** be passed for `type` = `PRESET`. The schedule end is derived from the latest execution `due_date`.\n",
        "example": "2024-06-10"
      },
      "SchedulerDateStart": {
        "type": "string",
        "description": "Date to start the scheduled payment. \n\nFormat = YYYY-MM-DD \n\nTransfers are made at midnight on this date and, if recurring, every month until `end_scheduler_date`.\n\n**REQUIRED** for `type` = `ONCE` or `RECURRING`. \n\nMust **NOT** be passed for `type` = `PRESET`. The schedule start is derived from the earliest execution `due_date`.\n",
        "example": "2024-06-10"
      },
      "scheduler.BankAccount": {
        "type": "object",
        "required": [
          "account_number",
          "account_type",
          "branch"
        ],
        "properties": {
          "account_type": {
            "$ref": "#/components/schemas/AccountType"
          },
          "branch": {
            "$ref": "#/components/schemas/Branch"
          },
          "account_number": {
            "$ref": "#/components/schemas/AccountNumber"
          }
        }
      },
      "scheduler.Payee": {
        "type": "object",
        "required": [
          "account_number",
          "account_type",
          "bank",
          "branch",
          "name",
          "document_number"
        ],
        "properties": {
          "account_number": {
            "$ref": "#/components/schemas/AccountNumber"
          },
          "account_type": {
            "$ref": "#/components/schemas/AccountType"
          },
          "bank": {
            "$ref": "#/components/schemas/Bank"
          },
          "branch": {
            "$ref": "#/components/schemas/Branch"
          },
          "beneficiary_id": {
            "$ref": "#/components/schemas/BeneficiaryID"
          },
          "document_number": {
            "$ref": "#/components/schemas/DocumentNumber"
          },
          "name": {
            "$ref": "#/components/schemas/Name"
          },
          "key": {
            "$ref": "#/components/schemas/Key"
          },
          "type": {
            "$ref": "#/components/schemas/PersonType"
          }
        }
      },
      "scheduler.PresetExecution": {
        "type": "object",
        "description": "A single pre-established execution for a `PRESET` scheduler.",
        "required": [
          "due_date",
          "end_to_end_id"
        ],
        "properties": {
          "due_date": {
            "type": "string",
            "description": "Date on which the execution runs. Format = YYYY-MM-DD.",
            "example": "2026-10-15"
          },
          "end_to_end_id": {
            "$ref": "#/components/schemas/EndToEndID"
          }
        }
      },
      "scheduler.SchedulerDetailsRequest": {
        "type": "object",
        "description": "Scheduler details accepted when creating a scheduler.",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/ProcessingType"
          },
          "description": {
            "type": "string",
            "description": "Schedule description",
            "maxLength": 200,
            "example": "Pay at end of month"
          },
          "start_scheduler_date": {
            "$ref": "#/components/schemas/SchedulerDateStart"
          },
          "end_scheduler_date": {
            "$ref": "#/components/schemas/SchedulerDateEnd"
          },
          "cycle": {
            "$ref": "#/components/schemas/SchedulerCycle"
          },
          "executions": {
            "type": "array",
            "minItems": 1,
            "maxItems": 60,
            "description": "List of pre-established executions. \n\n**REQUIRED** if `type` = `PRESET` (1 to 60 items).\n\nMust **NOT** be passed for `type` = `ONCE` or `RECURRING`. \n\nEach execution is created up front and can be retrieved through the [List Pix scheduler executions](https://developers.pismo.io/pismo-docs/reference/get-scheduler-executions) endpoint.\n\n This field is input-only: it is passed when creating a scheduler. The [Get scheduled transfer](https://developers.pismo.io/pismo-docs/reference/get-scheduled-pix-payment) endpoint does not return this field.\n",
            "items": {
              "$ref": "#/components/schemas/scheduler.PresetExecution"
            }
          }
        }
      },
      "scheduler.SchedulerRegisterRequest": {
        "type": "object",
        "required": [
          "amount",
          "bank_account",
          "initiation_type",
          "ispb",
          "payee",
          "scheduler_details"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Amount"
          },
          "bank_account": {
            "$ref": "#/components/schemas/scheduler.BankAccount"
          },
          "initiation_type": {
            "$ref": "#/components/schemas/InitiationType2"
          },
          "ispb": {
            "$ref": "#/components/schemas/ISPB"
          },
          "is_device_registered": {
            "$ref": "#/components/schemas/IsDeviceRegistered"
          },
          "payee": {
            "$ref": "#/components/schemas/scheduler.Payee"
          },
          "qr_code_additional_information": {
            "$ref": "#/components/schemas/QRcodeAddInfo"
          },
          "scheduler_details": {
            "$ref": "#/components/schemas/scheduler.SchedulerDetailsRequest"
          },
          "end_to_end_id": {
            "$ref": "#/components/schemas/EndToEndID"
          },
          "remittance_information": {
            "$ref": "#/components/schemas/RemittanceInformation"
          },
          "transaction_identification": {
            "type": "string",
            "description": "Transaction ID. \n\n**Notes:**\n  * **REQUIRED** if `initiation_type` = `DYNAMIC_QR_CODE`. \n\n  * Do **NOT** pass if `initiation_type` = `MANUAL` or `DICT`. \n\n  * If `STATIC_QR_CODE` contains `transaction_identification`, it is **REQUIRED** to pass it.\n",
            "example": "1a84daf6-a61b-4aba-919a-a9943db7102e"
          },
          "flex_controls": {
            "$ref": "#/components/schemas/FlexControls"
          },
          "taxes": {
            "$ref": "#/components/schemas/Taxes"
          },
          "processing_code": {
            "type": "string",
            "description": "Optional processing code propagated to the resulting Pix-out transfer. Up to 6 alphanumeric characters.\n\nFor more information, refer to the [Processing codes](https://developers.pismo.io/pismo-docs/docs/processing-codes-and-transaction-types) guide.\n",
            "maxLength": 6,
            "example": "500001"
          }
        }
      },
      "scheduler.SchedulerRegisterResponse": {
        "type": "object",
        "properties": {
          "scheduler_id": {
            "$ref": "#/components/schemas/SchedulerID"
          }
        }
      },
      "SchedulerCycle": {
        "type": "object",
        "description": "Cycle property present for scheduler `type` = `RECURRING`. Defaults to `MONTHLY`.\n",
        "properties": {
          "type": {
            "type": "string",
            "description": "Recurring cycle type",
            "enum": [
              "DAILY",
              "WEEKLY",
              "MONTHLY",
              "YEARLY"
            ],
            "example": "MONTHLY"
          },
          "count": {
            "type": "integer",
            "description": "Cycle count for generating new transactions. Each daily, weekly, monthly, or yearly occurrence is counted as one cycle.",
            "example": 1
          }
        }
      },
      "SchedulerID": {
        "type": "string",
        "description": "Scheduled PIX transaction ID",
        "example": "7b29a055-00e1-41e5-b880-aebe517b3bf6"
      },
      "TaxAmount": {
        "type": "number",
        "description": "Tax amount. Must be greater than zero.",
        "example": 1050.44
      },
      "Taxes": {
        "type": "object",
        "description": "Only available in the test environment for direct participants. Tax information related to the transaction.\n",
        "properties": {
          "tax_identifier": {
            "$ref": "#/components/schemas/TaxIdentifier"
          },
          "records": {
            "type": "array",
            "description": "Tax record types information. You must pass, at a minimum, 2 objects - at least one with `CBS` tax type and at least one with `IBS` tax type.\n",
            "items": {
              "$ref": "#/components/schemas/Records"
            }
          }
        }
      },
      "TaxIdentifier": {
        "type": "string",
        "description": "Tax identifier, referring to the NFe, NFSe or aggregating tax document. \n\nIn Brazil, NF-e and NFS-e are the two primary types of mandatory electronic invoices (Notas Fiscais) used for tax compliance.\n\n * NF-e (Nota Fiscal Eletrônica): Used for the sale and movement of physical goods or products. It is regulated at the state level by SEFAZ (SEFAZ (Secretaria da Fazenda) is the State Department of Finance in Brazil.) and travels with the goods.\n\n * NFS-e (Nota Fiscal de Serviços Eletrônica): Used for the provision of services (e.g., consulting, repairs, digital subscriptions). It is regulated by individual city governments.\n\nThe value entered must correspond to the tax document used for calculating the IBS and CBS taxes associated with the transaction.\n",
        "example": "IS0435879820240605bcdb1fhn43a",
        "maxLength": 50
      },
      "TaxType": {
        "type": "string",
        "description": "Tax type:\n\n `IBS` = Goods and services tax. A state and municipal tax that unifies and replaces the main subnational consumption taxes (state ICMS and municipal ISS).\n\n`CBS` = Contribution on goods and services. A federal tax that consolidates and replaces previous federal social contributions and taxes (PIS, Cofins, and IPI).\n",
        "example": "IBS",
        "enum": [
          "CBS",
          "IBS"
        ]
      }
    },
    "responses": {
      "400BadRequest": {
        "description": "Bad request",
        "headers": {
          "x-cid": {
            "description": "Request tracking ID.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "403Forbidden": {
        "description": "Forbidden",
        "headers": {
          "x-cid": {
            "description": "Request tracking ID.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "404NotFound": {
        "description": "Not found",
        "headers": {
          "x-cid": {
            "description": "Request tracking ID.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "409Conflict": {
        "description": "Conflict",
        "headers": {
          "x-cid": {
            "description": "Request tracking ID.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "429TooManyRequests": {
        "description": "Too many requests",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "500InternalServer": {
        "description": "Internal Server Error",
        "headers": {
          "x-cid": {
            "description": "Request tracking ID.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "502BadGateway": {
        "description": "Bad gateway",
        "headers": {
          "x-cid": {
            "description": "Request tracking ID.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "504GatewayTimeout": {
        "description": "Gateway timeout",
        "headers": {
          "x-cid": {
            "description": "Request tracking ID.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      }
    }
  },
  "paths": {
    "/pix/v2/pix/out/scheduler": {
      "post": {
        "summary": "Schedule transfer(s) V2",
        "description": "Schedule a Pix-out transfer or Pix-out recurring transfers. \n\nThis endpoint gives you more scheduling options than the version 1 [Schedule transfer](https://developers.pismo.io/pismo-docs/reference/post-schedule) endpoint. These include additional options (`scheduler_details` object) for recurring transfers.\n\nAs with the [Pix-out transfer](https://developers.pismo.io/pismo-docs/reference/post-pix-out-transfer) endpoint, if you are using a key or QR Code, you need to call  <a href=\"https://developers.pismo.io/pismo-docs/reference/post-v2-pix-keys-validate\">Validate DICT key</a> or <a href=\"https://developers.pismo.io/pismo-docs/reference/post-qr-code\">Get and validate QR Code</a> before calling this endpoint. You need to enter the `end_to_end_id` returned from those calls here. If you are not using a key or QR Code, this endpoint generates and returns an `end_to_end_id` value you can use in other endpoints.\n\nThe `end_to_end_id` field is a Brazil Central Bank (BCB) requirement to track Pix transactions.  Basically, there are two steps to a Pix transaction: 1. Initialize a transaction and 2. Confirm a transaction. The `end_to_end_id` is sent to the BCB in both steps in order to identify all transaction information.\n\nThis endpoint directly generates an [Instant pay scheduler status changed](https://developers.pismo.io/events/docs/instantpay-scheduler-scheduler-status-change-1) event.\n\nTo create a recurring payment, set `type` = `RECURRING` and pass a value for `cycle`. This property has 2 attributes and should be set as shown in the sample table below: \n\n`cycle.type` | `cycle.count` | New transaction created every:\n---------- | ----------- | ------------ \n`DAILY`      | 5           | 5 days\n`WEEKLY`     | 2           | 2 weeks\n`MONTHLY`    | 1           | 1 month\n`MONTHLY`    | 2           | 2 months\n`YEARLY`     | 1           | 1 year\n\n**Notes**\n\n* `WEEKLY` sets the `start_date` weekday. For a scheduler with `start_date` = Thursday, the next transaction is always on a Thursday.\n\n* `MONTHLY / YEARLY` sets the `start_date` day. For a scheduler with `start_date` = `2024-10-12`, the next transaction is always created on day 12 of each cycle count. Now, for days `29`, `30` and `31`, the scheduler uses the previous month's last day when that day doesn't exist in the current month. For example, considering a scheduler starting at `2024-01-30`, the next transaction is created on `2024-02-29`.\n\n**Preset schedules (Beta)**\n\n> ⚠️ The `PRESET` scheduler type is currently in **beta** and may change. Reach out to Pismo before using it in production.\n\nTo create a preset payment: set `type` = `PRESET` and provide the full list of executions in `scheduler_details.executions`. \nEach item has a `due_date` (`YYYY-MM-DD`) and a pre-established `end_to_end_id`. From 1 to 60 executions are supported and are all created upfront in a single operation, so `start_scheduler_date`, `end_scheduler_date` and `cycle` must **NOT** be passed for this type — the schedule window is derived from the executions' `due_date`.\n\nOnce created, the executions can be listed through the [List Pix scheduler executions](https://developers.pismo.io/pismo-docs/reference/get-scheduler-executions) endpoint. Because they already exist, the [Get scheduled transfer](https://developers.pismo.io/pismo-docs/reference/get-scheduled-pix-payment) endpoint does not return `executions_preview` for `PRESET` schedulers.\n\nThe optional `processing_code` (up to 6 alphanumeric characters) is propagated to the resulting Pix-out transfer.\n\n**Events**\n\n* When the transfer takes place, <a href=\"https://developers.pismo.io/events/docs/pix-pix-out-1\">Pix-out notification received</a> and <a href=\"https://developers.pismo.io/events/docs/pix-financial-reconciliation-1\">Pix reconciliation notification received </a> events are generated.\n\n* Also, when the transfer takes place, a <a href=\"https://developers.pismo.io/events/docs/pix-pix-in-1\">Pix-in notification received</a> event is generated when the funds are deposited in the payee's account, which can be a Pismo account or an external account.\n\n* For all events, the `status` or `result` field indicates operation success or failure.\n\nFor more information, refer to the [Pix instant payments](https://developers.pismo.io/pismo-docs/docs/pix-instant-payments) guide.\n\n**Note:** This endpoint takes an account token - an access token encoded with a Pismo accound ID.\n",
        "operationId": "post-schedule-pix-payment",
        "tags": [
          "Scheduled transfers V2"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthHeader"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKeyHeader"
          },
          {
            "$ref": "#/components/parameters/CIDheader"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/scheduler.SchedulerRegisterRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "headers": {
              "x-cid": {
                "description": "Request tracking ID.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/scheduler.SchedulerRegisterResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          },
          "429": {
            "$ref": "#/components/responses/429TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/500InternalServer"
          },
          "502": {
            "$ref": "#/components/responses/502BadGateway"
          },
          "504": {
            "$ref": "#/components/responses/504GatewayTimeout"
          }
        }
      }
    }
  }
}
```