Orum Schedules API

The Schedules API from Orum — 3 operation(s) for schedules.

OpenAPI Specification

orum-schedules-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Orum Authentication Schedules API
  description: Orum API.
  version: v2022-09-21
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://api-sandbox.orum.io
- url: https://vault.api-sandbox.orum.io
tags:
- name: Schedules
paths:
  /deliver/schedules:
    post:
      tags:
      - Schedules
      operationId: post-schedule
      summary: Create a schedule
      description: Schedule recurring transfers.
      parameters:
      - name: Orum-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/OrumVersion'
        x-orum-error-invalid:
          known-error: version_invalid
        x-orum-error-missing:
          known-error: version_missing
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduleRequest'
        required: true
      responses:
        '200':
          description: 200 response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduleResponse'
        '400':
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - oauth2:
        - write:schedules
    get:
      tags:
      - Schedules
      operationId: get-schedules
      summary: Get all schedules
      description: Get all schedule objects.
      parameters:
      - name: Orum-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/OrumVersion'
        x-orum-error-invalid:
          known-error: version_invalid
        x-orum-error-missing:
          known-error: version_missing
      - name: index
        description: Index for paginated results
        in: query
        required: false
        schema:
          type: integer
          default: 0
          minimum: 0
        x-orum-error-invalid:
          known-error: index
      - name: size
        description: Max number of results to return
        in: query
        required: false
        schema:
          type: integer
          default: 100
          minimum: 0
          maximum: 500
        x-orum-error-invalid:
          known-error: size
      - name: status
        description: Filter results by schedule status
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ScheduleStatus'
        x-orum-error-invalid:
          message: Invalid schedule status. It must be either active or inactive.
          code: invalid_schedule_status
      responses:
        '200':
          description: 200 response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchedulesResponse'
        '400':
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - oauth2:
        - read:schedules
  /deliver/schedules/rrule:
    post:
      tags:
      - Schedules
      operationId: post-validate-rrule
      summary: Validate and parse RRULE string
      description: Validates an RRULE string and returns its human readable form along with next occurrence dates.
      parameters:
      - name: Orum-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/OrumVersion'
        x-orum-error-invalid:
          known-error: version_invalid
        x-orum-error-missing:
          known-error: version_missing
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RruleValidationRequest'
        required: true
      responses:
        '200':
          description: 200 response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RruleValidationResponse'
        '400':
          description: invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - oauth2:
        - write:schedules
  /deliver/schedules/{id}:
    get:
      tags:
      - Schedules
      operationId: get-schedule
      summary: Get schedule by id
      description: Retrieve a single schedule
      parameters:
      - name: Orum-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/OrumVersion'
        x-orum-error-invalid:
          known-error: version_invalid
        x-orum-error-missing:
          known-error: version_missing
      - name: id
        description: Orum generated unique id for the schedule you are fetching.
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/OrumId'
        x-orum-error-invalid:
          known-error: invalid_schedule_id
        x-orum-error-missing:
          known-error: missing_schedule_id
      responses:
        '200':
          description: 200 response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduleResponse'
        '404':
          description: not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - oauth2:
        - read:schedules
    delete:
      tags:
      - Schedules
      operationId: delete-schedule
      summary: delete a schedule that matches the id
      description: Delete a single schedule
      parameters:
      - name: Orum-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/OrumVersion'
        x-orum-error-invalid:
          known-error: version_invalid
        x-orum-error-missing:
          known-error: version_missing
      - name: id
        description: Orum generated unique id for the schedule you are deleting.
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/OrumId'
        x-orum-error-invalid:
          known-error: invalid_schedule_id
        x-orum-error-missing:
          known-error: missing_schedule_id
      responses:
        '200':
          description: 200 response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduleResponse'
        '404':
          description: not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        default:
          description: unexpected error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - oauth2:
        - write:schedules
components:
  schemas:
    ScheduleStatus:
      title: ScheduleStatus
      type: string
      description: Describes the current status of the schedule.
      enum:
      - active
      - inactive
    ScheduleRecurrence:
      type: string
      description: Recurrence of the schedule in iCalendar RRULE format
      example: RRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,WE,FR
    ErrorResponse:
      type: object
      properties:
        error_code:
          type: string
        message:
          type: string
        details:
          type: object
          description: additional details about the error.
          nullable: true
      required:
      - error_code
      - message
    TransferAmount:
      title: TransferAmount
      type: integer
      description: 'Transfer amount in integral cents (example: 100 = $1). Must be greater than zero.'
      minimum: 1
    ScheduleReferenceId:
      title: ScheduleReferenceId
      type: string
      description: Unique reference id for the Schedule. Generated by you.
      minLength: 1
    RruleValidationRequest:
      title: RruleValidationRequest
      type: object
      properties:
        start_date:
          allOf:
          - $ref: '#/components/schemas/ScheduleStartDate'
          x-orum-error-missing:
            known-error: missing_schedule_start_date
          x-orum-error-invalid:
            known-error: invalid_schedule_start_date
        recurrence:
          allOf:
          - $ref: '#/components/schemas/ScheduleRecurrence'
          x-orum-error-missing:
            known-error: missing_schedule_recurrence
          x-orum-error-invalid:
            known-error: invalid_schedule_recurrence
        occurrence_count:
          type: integer
          minimum: 1
          maximum: 5
          description: Number of occurrences to return. Defaults to 2 if not specified.
          x-orum-error-invalid:
            known-error: invalid_occurrence_count
      required:
      - start_date
      - recurrence
    SourceTransferParty:
      title: Source
      type: object
      description: For use cases that require a Source, information about the transfer funding source, which will be debited.
      properties:
        customer_reference_id:
          type: string
          description: Unique reference ID for the customer (person or business) associated with the external account being debited.
          minLength: 1
          x-orum-error-missing:
            known-error: missing_source_customer_reference_id
          x-orum-error-invalid:
            known-error: invalid_source_customer_reference_id
        account_reference_id:
          type: string
          description: Unique reference ID for the external account being debited.
          minLength: 1
          x-orum-error-missing:
            known-error: missing_source_account_reference_id
          x-orum-error-invalid:
            known-error: invalid_source_account_reference_id
        statement_display_name:
          type: string
          description: The name that will appear on the bank account statement of the account being debited. The field supports 16 alphanumeric characters for ACH, and 140 for RTP.
          nullable: true
      required:
      - account_reference_id
      - customer_reference_id
    OrumVersion:
      type: string
      description: Version of Deliver and Verify APIs. Use v2022-09-21.
      enum:
      - v2022-09-21
    SchedulesResponse:
      title: SchedulesResponse
      type: object
      required:
      - schedules
      properties:
        schedules:
          type: array
          description: List of schedules.
          items:
            $ref: '#/components/schemas/ScheduleResponseBaseObject'
    ScheduleResponse:
      title: ScheduleResponse
      type: object
      required:
      - schedule
      properties:
        schedule:
          $ref: '#/components/schemas/ScheduleResponseBaseObject'
    Currency:
      title: Currency
      type: string
      description: Currency code in ISO 4217 format. Only USD is supported.
      enum:
      - USD
    ScheduleStartDate:
      type: string
      description: The date when the schedule starts, in YYYY-MM-DD format.
      format: date
      example: '2025-01-01'
    CreatedAt:
      type: string
      description: Timestamp when the resource was created.
      format: date-time
    ScheduleRequest:
      title: ScheduleRequest
      type: object
      properties:
        schedule_reference_id:
          allOf:
          - $ref: '#/components/schemas/ScheduleReferenceId'
          x-orum-error-missing:
            known-error: missing_schedule_reference_id
          x-orum-error-invalid:
            known-error: invalid_schedule_reference_id
        amount:
          allOf:
          - $ref: '#/components/schemas/TransferAmount'
          x-orum-error-missing:
            known-error: missing_amount
          x-orum-error-invalid:
            known-error: invalid_amount
        currency:
          allOf:
          - $ref: '#/components/schemas/Currency'
          x-orum-error-missing:
            known-error: missing_currency
          x-orum-error-invalid:
            known-error: invalid_currency
        speed:
          allOf:
          - $ref: '#/components/schemas/TransferSpeed'
          x-orum-error-missing:
            known-error: missing_speed
          x-orum-error-invalid:
            known-error: invalid_speed
        source:
          allOf:
          - $ref: '#/components/schemas/SourceTransferParty'
          nullable: true
          type: object
        destination:
          allOf:
          - $ref: '#/components/schemas/DestinationTransferParty'
          type: object
          nullable: true
        start_date:
          allOf:
          - $ref: '#/components/schemas/ScheduleStartDate'
          x-orum-error-missing:
            known-error: missing_schedule_start_date
          x-orum-error-invalid:
            known-error: invalid_schedule_start_date
        recurrence:
          allOf:
          - $ref: '#/components/schemas/ScheduleRecurrence'
          x-orum-error-missing:
            known-error: missing_schedule_recurrence
          x-orum-error-invalid:
            known-error: invalid_schedule_recurrence
      required:
      - schedule_reference_id
      - amount
      - currency
      - speed
      - start_date
      - recurrence
    UpdatedAt:
      type: string
      description: Timestamp when the resource was last updated.
      format: date-time
    ScheduleNextPaymentDate:
      type: string
      description: The date when the schedule will execute
      format: date
      example: '2025-01-01'
    RruleValidationResponse:
      title: RruleValidationResponse
      type: object
      properties:
        start_date:
          $ref: '#/components/schemas/ScheduleStartDate'
        rrule_string:
          type: string
          description: The original RRULE string
        rrule_readable:
          type: string
          description: Human readable form of the RRULE
        occurrences:
          type: array
          description: List of next occurrence dates
          items:
            type: string
            format: date
      required:
      - start_date
      - recurrence
      - occurrences
      - rrule_string
      - rrule_readable
    ScheduleHumanReadableCadence:
      title: ScheduleHumanReadableCadence
      type: string
      description: The human-readable cadence of the schedule.
      example: Weekly on Monday, Wednesday, and Friday
    OrumId:
      type: string
      description: Orum generated unique id for the resource.
      format: uuid
    DestinationTransferParty:
      title: TransferDestination
      type: object
      description: Information about the transfer funds destination, which will be credited.
      properties:
        customer_reference_id:
          type: string
          description: Unique reference ID for the customer (person or business) associated with the external account being credited.
          minLength: 1
          x-orum-error-missing:
            known-error: missing_destination_customer_reference_id
          x-orum-error-invalid:
            known-error: invalid_destination_customer_reference_id
        account_reference_id:
          type: string
          description: Unique reference ID for the account being credited.
          minLength: 1
          x-orum-error-missing:
            known-error: missing_destination_account_reference_id
          x-orum-error-invalid:
            known-error: invalid_destination_account_reference_id
        statement_display_name:
          type: string
          description: The name that will appear on the bank account statement of the account being credited. The field supports 16 alphanumeric characters for ACH, and 140 for RTP.
          nullable: true
      required:
      - account_reference_id
      - customer_reference_id
    ScheduleResponseBaseObject:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/OrumId'
        schedule_reference_id:
          $ref: '#/components/schemas/ScheduleReferenceId'
        status:
          $ref: '#/components/schemas/ScheduleStatus'
        amount:
          $ref: '#/components/schemas/TransferAmount'
        currency:
          $ref: '#/components/schemas/Currency'
        speed:
          $ref: '#/components/schemas/TransferSpeed'
        source:
          $ref: '#/components/schemas/SourceTransferParty'
        destination:
          $ref: '#/components/schemas/DestinationTransferParty'
        start_date:
          $ref: '#/components/schemas/ScheduleStartDate'
        recurrence:
          $ref: '#/components/schemas/ScheduleRecurrence'
        next_payment_date:
          $ref: '#/components/schemas/ScheduleNextPaymentDate'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        rrule_readable:
          $ref: '#/components/schemas/ScheduleHumanReadableCadence'
      required:
      - id
      - schedule_reference_id
      - status
      - amount
      - currency
      - speed
      - start_date
      - recurrence
      - next_payment_date
      - created_at
      - updated_at
      - rrule_readable
    TransferSpeed:
      title: TransferSpeed
      type: string
      description: Speed of transfer.
      enum:
      - asap
      - standard
      - same_day
      - wire
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api-sandbox.orum.io/oauth/token
          scopes:
            read:persons: Read persons
            write:persons: Write persons
            read:businesses: Read businesses
            write:businesses: Write businesses
            read:external-accounts: Read external accounts
            write:external-accounts: Write external accounts
            read:cards: Read cards
            write:cards: Write cards
            read:transfers: Read transfers
            write:transfers: Write transfers
            read:transfer-groups: Read transfer groups
            write:transfer-groups: Write transfer groups
            read:schedules: Read schedules
            write:schedules: Write schedules
            read:routing-number-eligibility: Read routing number eligibility
            read:balances: Read balances
            read:reports: Read reports
            write:reports: Write reports
            read:booktransfers: Read book transfers
            write:booktransfers: Write book transfers
            read:subledgers: Read subledgers
            write:subledgers: Write subledgers
            read:verify-accounts: Read verify accounts
            write:verify-accounts: Write verify accounts
            read:webhook-configurations: Read webhook configurations
            write:webhook-configurations: Write webhook configurations
            read:webhook-secret: Read webhook secret
            write:webhook-secret: Write webhook secret
            invoke:webhook: Invoke webhook