Ordo Recurring Payment Mandates (VRP) API

Variable Recurring Payments — create sweeping and non-sweeping VRP mandates, read mandates, execute mandate payments and read VRP transactions. Enables fixed, variable and ad-hoc recurring collections as an alternative to Direct Debit and card CPA. 6 documented operations.

OpenAPI Specification

ordo-recurring-payment-mandates.yml Raw ↑
openapi: 3.0.1
info:
  title: Recurring Payment Mandates
  version: v1
servers:
- url: https://test.api.ordopay.com/vrp/v1
paths:
  /VRPMandate/sweeping:
    post:
      tags:
      - Create a mandate
      summary: Creates a new sweeping VRP Mandate
      description: Creates a new VRP Mandate
      operationId: post-vrpmandate
      parameters:
      - name: participantId
        in: header
        description: Format - int32. Format - int32. Participant ID
        schema:
          type: integer
      requestBody:
        description: New VRP Mandate request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VRPMandateMessage'
            example:
              vrpMandateName: string
              validFromDate: string
              validToDate: string
              billerParticipantId: 0
              billerReference: string
              billerAccountId: string
              payerAliasType: EMAIL
              payerAliasValue: string
              payerReference: string
              vrpControlParameters:
                maximumIndividualAmount: 0
                maximumIndividualAmountCurrency: string
                controlParameters:
                - amount: 0
                  currency: string
                  periodAlignment: string
                  periodType: string
              attachmentBatchId: string
              vrpurLs:
                redirectURL: string
                cancelURL: string
                errorURL: string
              refundAccountRequired: true
          text/json:
            schema:
              $ref: '#/components/schemas/VRPMandateMessage'
            example:
              vrpType: SWEEPING
              vrpMandateName: string
              validFromDate: string
              validToDate: string
              billerParticipantId: 0
              billerReference: string
              billerAccountId: string
              payerAliasType: EMAIL
              payerAliasValue: string
              payerReference: string
              vrpControlParameters:
                maximumIndividualAmount: 0
                maximumIndividualAmountCurrency: string
                controlParameters:
                - amount: 0
                  currency: string
                  periodAlignment: string
                  periodType: string
              attachmentBatchId: string
              vrpurLs:
                redirectURL: string
                cancelURL: string
                errorURL: string
              refundAccountRequired: true
          application/*+json:
            schema:
              $ref: '#/components/schemas/VRPMandateMessage'
            example:
              vrpType: SWEEPING
              vrpMandateName: string
              validFromDate: string
              validToDate: string
              billerParticipantId: 0
              billerReference: string
              billerAccountId: string
              payerAliasType: EMAIL
              payerAliasValue: string
              payerReference: string
              vrpControlParameters:
                maximumIndividualAmount: 0
                maximumIndividualAmountCurrency: string
                controlParameters:
                - amount: 0
                  currency: string
                  periodAlignment: string
                  periodType: string
              attachmentBatchId: string
              vrpurLs:
                redirectURL: string
                cancelURL: string
                errorURL: string
              refundAccountRequired: true
      responses:
        '201':
          description: Created
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/VRPMandatePostResponse'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/VRPMandatePostResponse'
              example:
                vrpAuthUrl: string
                vrpMandate:
                  vrpMandateId: string
                  vrpMandateName: string
                  vrpType: SWEEPING
                  createdDate: string
                  status: string
                  validFromDate: string
                  validToDate: string
                  billerParticipantId: 0
                  billerApprovedName: string
                  billerReference: string
                  billerAccountId: string
                  payerParticipantId: 0
                  payerAliasType: EMAIL
                  payerAliasValue: string
                  payerReference: string
                  templateId: string
                  payerRead: true
                  psuAuthenticationMethods: string
                  vrpControlParameters:
                    maximumIndividualAmount: 0
                    maximumIndividualAmountCurrency: string
                    controlParameters:
                    - amount: 0
                      currency: string
                      periodAlignment: string
                      periodType: string
                  updatedDate: string
                  cancelledBy: string
                  refundAccountRequired: true
                vrpURLs:
                  redirectURL: string
                  cancelURL: string
                  errorURL: string
            text/json:
              schema:
                $ref: '#/components/schemas/VRPMandatePostResponse'
              example:
                vrpAuthUrl: string
                vrpMandate:
                  vrpMandateId: string
                  vrpMandateName: string
                  vrpType: SWEEPING
                  createdDate: string
                  status: string
                  validFromDate: string
                  validToDate: string
                  billerParticipantId: 0
                  billerApprovedName: string
                  billerReference: string
                  billerAccountId: string
                  payerParticipantId: 0
                  payerAliasType: EMAIL
                  payerAliasValue: string
                  payerReference: string
                  templateId: string
                  payerRead: true
                  psuAuthenticationMethods: string
                  vrpControlParameters:
                    maximumIndividualAmount: 0
                    maximumIndividualAmountCurrency: string
                    controlParameters:
                    - amount: 0
                      currency: string
                      periodAlignment: string
                      periodType: string
                  updatedDate: string
                  cancelledBy: string
                  refundAccountRequired: true
                vrpURLs:
                  redirectURL: string
                  cancelURL: string
                  errorURL: string
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        '422':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
  /VRPMandate/{mandateId}:
    get:
      tags:
      - Retrieve mandate details
      summary: Retrieves an existing VRP mandate
      description: Retrieves an existing VRP mandate
      operationId: get-vrpmandate-mandateid
      parameters:
      - name: mandateId
        in: path
        description: VRP Mandate ID
        required: true
        schema:
          type: string
      - name: participantId
        in: header
        description: Format - int32. Format - int32. Format - int32. Participant ID
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/VRPMandateGetResponse'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/VRPMandateGetResponse'
              example:
                vrpMandate:
                  vrpMandateId: string
                  vrpMandateName: string
                  vrpType: SWEEPING
                  createdDate: string
                  status: string
                  validFromDate: string
                  validToDate: string
                  billerParticipantId: 0
                  billerApprovedName: string
                  billerReference: string
                  billerAccountId: string
                  payerParticipantId: 0
                  payerAliasType: EMAIL
                  payerAliasValue: string
                  payerReference: string
                  templateId: string
                  payerRead: true
                  psuAuthenticationMethods: string
                  vrpControlParameters:
                    maximumIndividualAmount: 0
                    maximumIndividualAmountCurrency: string
                    controlParameters:
                    - amount: 0
                      currency: string
                      periodAlignment: string
                      periodType: string
                  updatedDate: string
                  cancelledBy: string
                  refundAccountRequired: true
                vrpURLs:
                  redirectURL: string
                  cancelURL: string
                  errorURL: string
            text/json:
              schema:
                $ref: '#/components/schemas/VRPMandateGetResponse'
              example:
                vrpMandate:
                  vrpMandateId: string
                  vrpMandateName: string
                  vrpType: SWEEPING
                  createdDate: string
                  status: string
                  validFromDate: string
                  validToDate: string
                  billerParticipantId: 0
                  billerApprovedName: string
                  billerReference: string
                  billerAccountId: string
                  payerParticipantId: 0
                  payerAliasType: EMAIL
                  payerAliasValue: string
                  payerReference: string
                  templateId: string
                  payerRead: true
                  psuAuthenticationMethods: string
                  vrpControlParameters:
                    maximumIndividualAmount: 0
                    maximumIndividualAmountCurrency: string
                    controlParameters:
                    - amount: 0
                      currency: string
                      periodAlignment: string
                      periodType: string
                  updatedDate: string
                  cancelledBy: string
                  refundAccountRequired: true
                vrpURLs:
                  redirectURL: string
                  cancelURL: string
                  errorURL: string
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        '422':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
  /VRPMandates:
    get:
      tags:
      - Retrieve mandate details
      summary: Gets all VRP mandates associated with a participant
      description: Gets all VRP mandates associated with a participant
      operationId: get-vrpmandates
      parameters:
      - name: PageNumber
        in: query
        description: Format - int32. Format - int32. Format - int32.
        schema:
          type: integer
          format: int32
      - name: PageSize
        in: query
        description: Format - int32. Format - int32. Format - int32.
        schema:
          type: integer
          format: int32
      - name: participantId
        in: header
        description: Format - int32. Format - int32. Format - int32. Participant ID.
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/VRPMandatesResponse'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/VRPMandatesResponse'
              example:
                vrpMandates:
                - vrpMandateId: string
                  vrpMandateName: string
                  vrpType: SWEEPING
                  createdDate: string
                  status: string
                  validFromDate: string
                  validToDate: string
                  billerParticipantId: 0
                  billerApprovedName: string
                  billerReference: string
                  billerAccountId: string
                  payerParticipantId: 0
                  payerAliasType: EMAIL
                  payerAliasValue: string
                  payerReference: string
                  templateId: string
                  payerRead: true
                  psuAuthenticationMethods: string
                  vrpControlParameters:
                    maximumIndividualAmount: 0
                    maximumIndividualAmountCurrency: string
                    controlParameters:
                    - amount: 0
                      currency: string
                      periodAlignment: string
                      periodType: string
                  updatedDate: string
                  cancelledBy: string
                  refundAccountRequired: true
            text/json:
              schema:
                $ref: '#/components/schemas/VRPMandatesResponse'
              example:
                vrpMandates:
                - vrpMandateId: string
                  vrpMandateName: string
                  vrpType: SWEEPING
                  createdDate: string
                  status: string
                  validFromDate: string
                  validToDate: string
                  billerParticipantId: 0
                  billerApprovedName: string
                  billerReference: string
                  billerAccountId: string
                  payerParticipantId: 0
                  payerAliasType: EMAIL
                  payerAliasValue: string
                  payerReference: string
                  templateId: string
                  payerRead: true
                  psuAuthenticationMethods: string
                  vrpControlParameters:
                    maximumIndividualAmount: 0
                    maximumIndividualAmountCurrency: string
                    controlParameters:
                    - amount: 0
                      currency: string
                      periodAlignment: string
                      periodType: string
                  updatedDate: string
                  cancelledBy: string
                  refundAccountRequired: true
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        '422':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
  /VRPTransaction/{vrpTransactionId}:
    get:
      tags:
      - Retrieve mandate details
      summary: Gets a VRP Transaction
      description: Gets a VRP Transaction
      operationId: get-vrptransaction-vrptransactionid
      parameters:
      - name: vrpTransactionId
        in: path
        description: VRP Transaction ID
        required: true
        schema:
          type: string
      - name: participantId
        in: header
        description: Format - int32. Format - int32. Format - int32. Participant ID
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/VRPTransactionPostResponse'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/VRPTransactionPostResponse'
              example:
                vrpTransaction:
                  vrpTransactionId: string
                  vrpMandateId: string
                  billerParticipantId: 0
                  payerAliasType: EMAIL
                  payerAliasValue: string
                  amount: 0
                  currency: string
                  aspspTransactionId: string
                  paymentDate: string
                  status: string
                  paymentStatus: string
                  billerReference: string
                  createdDate: string
                  updatedDate: string
            text/json:
              schema:
                $ref: '#/components/schemas/VRPTransactionPostResponse'
              example:
                vrpTransaction:
                  vrpTransactionId: string
                  vrpMandateId: string
                  billerParticipantId: 0
                  payerAliasType: EMAIL
                  payerAliasValue: string
                  amount: 0
                  currency: string
                  aspspTransactionId: string
                  paymentDate: string
                  status: string
                  paymentStatus: string
                  billerReference: string
                  createdDate: string
                  updatedDate: string
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/OrdoValidationProblemDetails'
              example:
                title: string
                status: 0
                detail: string
                code: string
                errors: {}
                type: string
                instance: string
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              examples:
                default:
                  value: null
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              example:
                type: string
                title: string
                status: 0
                detail: string
                instance: string
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
              examples:
           

# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ordo/refs/heads/main/openapi/ordo-recurring-payment-mandates.yml