---
updatedAt: 2026-06-25T22:44:00.000Z
---

Fetch the complete documentation index at: https://developers.pismo.io/pismo-docs/llms.txt. Use this file to discover all available pages before exploring further.

# Create pre-schedule

Create a pre-schedule, which is executed by a direct call from the Pismo platform at the end of the closing cycle. To configure execution of a pre-schedule, contact your Pismo representative or call the [Execute pre-schedule](ref:post-execute-pre-schedule) endpoint.

This endpoint generates the [Scheduled payment created or modified](https://developers.pismo.io/events/docs/scheduler-payments-scheduled-payments-1) event with the `status` field set to `CREATED`.

Once the pre-schedule is created, its execution generates the following events.

- First execution of the pre-schedule on the start date generates the [Scheduled payment created or modified](https://developers.pismo.io/events/docs/scheduler-payments-scheduled-payments-1) event with the `status` field set to `IN_PROGRESS`.
- Last execution of the pre-schedule on the end date generates the [Scheduled payment created or modified](https://developers.pismo.io/events/docs/scheduler-payments-scheduled-payments-1) event with the `status` field set to `COMPLETED`.
- Each execution of the pre-schedule also generates the [Scheduled payment executed](https://developers.pismo.io/events/docs/scheduler-payments-scheduled-payments-execution-1) event with the corresponding execution status.

Refer to the [Payment scheduler](doc:payment-scheduler) guide for more information.


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Core platform - Payment scheduler",
    "version": "1.0.0",
    "description": "Endpoints to enable scheduler creation and processing.",
    "contact": {
      "name": "API Support",
      "url": "https://developers.pismo.io/"
    },
    "license": {
      "name": "Copyright Pismo"
    }
  },
  "servers": [
    {
      "url": "https://sandbox.pismolabs.io/scheduler-payments",
      "description": "Sandbox API server for testing"
    }
  ],
  "tags": [
    {
      "name": "Schedules",
      "description": "Endpoints to enable scheduler creation and processing"
    }
  ],
  "components": {
    "responses": {
      "400BadRequest": {
        "description": "Bad request"
      },
      "403Forbidden": {
        "description": "Operation forbidden"
      },
      "500InternalServer": {
        "description": "Internal server error"
      }
    },
    "schemas": {
      "AccountID": {
        "description": "Account ID",
        "type": "integer",
        "format": "int64",
        "example": 8675309
      },
      "Amount": {
        "type": "number",
        "format": "float",
        "description": "Credit or debit amount",
        "example": 100.23
      },
      "CurrencyCode": {
        "type": "string",
        "description": "Three-letter currency code of the operation in ISO 4217.",
        "example": "BRL"
      },
      "Description": {
        "type": "string",
        "description": "Optional text that describes the operation",
        "example": "Custom purchase",
        "maxLength": 100
      },
      "Metadata": {
        "type": "object",
        "description": "This optional user-defined key-value object field can be used with external operations to provide additional context or supplementary custom information for the operation. The Pismo platform does not perform any validation or processing on this field.\n\n**Note**: This field must not be used to send Personally Identifiable Information (PII), Payment Card Industry (PCI) data, or any sensitive/regulated information. Metadata fields are intended for operational, non-sensitive data only. For sensitive data, use the specific parameters designed for that purpose. For more information, refer to [Get started with Pismo APIs](https://developers.pismo.io/pismo-docs/reference/get-started-with-pismo-apis#metadata).\n",
        "example": {
          "any-key": "any-value"
        }
      },
      "PreScheduleDetails": {
        "type": "object",
        "description": "Pre-schedule details",
        "properties": {
          "statement": {
            "$ref": "#/components/schemas/Statement"
          }
        }
      },
      "PreScheduleRequest": {
        "type": "object",
        "description": "Request to create a new pre-schedule",
        "required": [
          "schedule_id",
          "schedule_details",
          "account_id",
          "processing_code",
          "amount",
          "currency_code"
        ],
        "properties": {
          "schedule_id": {
            "$ref": "#/components/schemas/ScheduleID"
          },
          "schedule_details": {
            "$ref": "#/components/schemas/PreScheduleDetails"
          },
          "account_id": {
            "$ref": "#/components/schemas/AccountID"
          },
          "amount": {
            "$ref": "#/components/schemas/Amount"
          },
          "currency_code": {
            "$ref": "#/components/schemas/CurrencyCode"
          },
          "processing_code": {
            "$ref": "#/components/schemas/ProcessingCode"
          },
          "description": {
            "$ref": "#/components/schemas/Description"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          }
        }
      },
      "PreScheduleResponse": {
        "type": "object",
        "description": "Response from the creation of a new pre-schedule from the migration process",
        "properties": {
          "schedule_id": {
            "$ref": "#/components/schemas/ScheduleID"
          }
        }
      },
      "ProcessingCode": {
        "type": "string",
        "description": "Processing code that identifies the credit or debit operation",
        "example": "219803"
      },
      "ScheduleID": {
        "type": "string",
        "description": "Schedule ID (idempotency field for this operation)",
        "minLength": 36,
        "maxLength": 50,
        "example": "eec3df75-629d-43dc-8eb7-e3b186188341"
      },
      "Statement": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Pismo ID of the statement linked to the pre-schedule",
            "example": 1234455
          }
        }
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Account access token. Tokens can expire quickly, which can result in an \"Unauthorized\" error.",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "paths": {
    "/v1/pre-schedules": {
      "post": {
        "summary": "Create pre-schedule",
        "description": "Create a pre-schedule, which is executed by a direct call from the Pismo platform at the end of the closing cycle. To configure execution of a pre-schedule, contact your Pismo representative or call the [Execute pre-schedule](https://developers.pismo.io/pismo-docs/reference/post-execute-pre-schedule) endpoint.\n\nThis endpoint generates the [Scheduled payment created or modified](https://developers.pismo.io/events/docs/scheduler-payments-scheduled-payments-1) event with the `status` field set to `CREATED`.\n\nOnce the pre-schedule is created, its execution generates the following events.\n\n- First execution of the pre-schedule on the start date generates the [Scheduled payment created or modified](https://developers.pismo.io/events/docs/scheduler-payments-scheduled-payments-1) event with the `status` field set to `IN_PROGRESS`.\n- Last execution of the pre-schedule on the end date generates the [Scheduled payment created or modified](https://developers.pismo.io/events/docs/scheduler-payments-scheduled-payments-1) event with the `status` field set to `COMPLETED`.\n- Each execution of the pre-schedule also generates the [Scheduled payment executed](https://developers.pismo.io/events/docs/scheduler-payments-scheduled-payments-execution-1) event with the corresponding execution status.\n\nRefer to the [Payment scheduler](https://developers.pismo.io/pismo-docs/docs/payment-scheduler) guide for more information.\n",
        "operationId": "post-pre-schedules",
        "tags": [
          "Schedules"
        ],
        "requestBody": {
          "description": "Request processing body",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreScheduleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Request was processed successfully, existing schedule with the corresponding `schedule_id` returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreScheduleResponse"
                }
              }
            }
          },
          "201": {
            "description": "Request was processed successfully, new pre-schedule created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreScheduleResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "500": {
            "$ref": "#/components/responses/500InternalServer"
          }
        }
      }
    }
  }
}
```