openapi: 3.0.1
info:
title: Single Payments
description: Smart Request BDR, withdraw BDR and Open Banking institutions and initiate endpoints
version: '1.0'
servers:
- url: https://test.api.ordopay.com/payments
paths:
/institutions:
get:
tags:
- Client hosted
summary: Get institutions list
description: Retrieves a list of all banks addressable via Ordo for customer selection
operationId: get-institutions
parameters:
- name: participantId
in: header
description: Format - int32. System generated unique identifier of the participant.
required: true
schema:
type: integer
responses:
'200':
description: Success response - the list of supported institutions is returned. Could return
an empty list.
content:
application/json:
schema:
$ref: '#/components/schemas/InstitutionsResponse'
example:
- media:
logoUrl: https://images.yapily.com/image/ca502f24-d6df-4785-b4b8-1034b100af77?size=0
iconUrl: https://images.yapily.com/image/ce2bfdbf-1ae2-4919-ab7b-e8b3d5e93b36?size=0
features:
- ACCOUNT_STATEMENT_FILE
- INITIATE_SINGLE_PAYMENT_SORTCODE
- CREATE_SINGLE_PAYMENT_SORTCODE
- ACCOUNT_TRANSACTIONS_WITH_MERCHANT
- ACCOUNT_STATEMENTS
- INITIATE_DOMESTIC_SCHEDULED_PAYMENT
- ACCOUNT_TRANSACTIONS
- CREATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_NONSWEEPING
- ACCOUNT_STATEMENT
- ACCOUNT_SCHEDULED_PAYMENTS
- INITIATE_DOMESTIC_PERIODIC_PAYMENT
- ACCOUNT
- CREATE_DOMESTIC_PERIODIC_PAYMENT
- ACCOUNT_BALANCES
- IDENTITY
- INITIATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_SWEEPING
- ACCOUNT_DIRECT_DEBITS
- INITIATE_INTERNATIONAL_SINGLE_PAYMENT
- ACCOUNTS
- ACCOUNT_REQUEST_DETAILS
- ACCOUNT_BENEFICIARIES
- EXISTING_PAYMENTS_DETAILS
- INITIATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_NONSWEEPING
- CREATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_SWEEPING
- PERIODIC_PAYMENT_FREQUENCY_EXTENDED
- ACCOUNT_PERIODIC_PAYMENTS
- CREATE_INTERNATIONAL_SINGLE_PAYMENT
- VARIABLE_RECURRING_PAYMENT_FUNDS_CONFIRMATION
- INITIATE_DOMESTIC_SINGLE_PAYMENT
- CREATE_DOMESTIC_SINGLE_PAYMENT
- EXISTING_PAYMENT_INITIATION_DETAILS
- CREATE_DOMESTIC_SCHEDULED_PAYMENT
- CREATE_BULK_PAYMENT
- INITIATE_BULK_PAYMENT
- INITIATE_ACCOUNT_REQUEST
ordoInstitutionId: int_modelo_sandbox
name: Modelo Sandbox
/create:
post:
tags:
- Client hosted
summary: Create a payment request with link
description: Create a new payment request and returns the smart request ID for use in the Initiate
payment request
operationId: postsmartrequestbdrasync
parameters:
- name: participantid
in: header
description: int32
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewBDRSmartRequestMessage'
example:
bdrRedirectURL: string
bdrCancelURL: string
bdrErrorURL: string
senderParticipantId: 0
recipientParticipantId: 0
billerParticipantId: 0
billerContactEmail: string
billerContactPhone: string
billerReference: string
billerAccountId: string
payerParticipantId: 0
payerAliasType: EMAIL
payerAliasValue: "Email : example@mail.com\r\nPhone : +countrycode 7712345678."
payerReference: string
amountDue: 0
amountCurrency: GBP
dueDate: 2017-07-21T17:32:28Z.
expiryDate: 2017-07-21T17:32:28Z.
partialPaymentAllowed: true
dueDateExtensionsAllowed: true
partialPaymentsRemaining: 0
attachmentBatchId: string
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/NewBDRSmartRequestResponse'
example:
bdRlink: https://dev.myordo.com/2kLxnCW7WJ1
smartRequestId: ad068def-a880-454f-9a9a-fbb3ba969fff
creationDateTime: '2023-06-05T11:22:41.0000000+00:00'
status: OPEN
paymentStatus: UNPAID
billerParticipantId: 1
billerContactEmail: null
billerContactPhone: null
billerReference: simon testing
billerAccountId: BD6FAAB6-C755-47EB-818A-53F649EFDB56
payerParticipantId: 1
payerAliasType: EMAIL
payerAliasValue: simonTest@Ordo.com
payerReference: simon bdr link
amountDue: 20
amountCurrency: GBP
dueDate: '2025-10-23T00:00:00.0000000+00:00'
expiryDate: '2025-09-15T23:59:59.0000000+00:00'
dueDateExtensionsAllowed: false
partialPaymentAllowed: false
partialPaymentsRemaining: 5
attachmentBatchId: ''
refundAccountRequired: false
smartRequestUrls:
bdrRedirectURL: https://www.myLink.com?customerID=24
bdrCancelURL: https://www.myLink.com?customerID=24
bdrErrorURL: https://www.myLink.com?customerID=24
'400':
description: Bad Request
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/OrdoValidationProblemDetails'
example:
code: string
errors: {}
type: string
title: string
status: 0
detail: string
instance: string
'403':
description: Forbidden
'404':
description: Not Found
'422':
description: Client Error
/initiate:
post:
tags:
- Client hosted
summary: Initiate payment request
description: Returns the unique redirect URL to the selected bank
operationId: post-initiatepayment
parameters:
- name: participantid
in: header
description: participant id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/initiatePaymentRequest'
example:
required:
- ordoInstitutionId
- smartRequestId
- amount
- currency
properties:
ordoInstitutionId:
type: string
description: The identifier of the institution, obtained by calling the /institutions
endpoint.
example: int_modelo_sandbox
smartRequestId:
type: string
description: The unique identifier of the Smart Request to pay.
example: DHEY282H
amount:
minimum: 0.01
type: number
description: The amount to pay
format: double
example: 39.89
currency:
maxLength: 3
minLength: 3
type: string
description: The currency used for the transaction, specified using the ISO 4217 currency
code standard. Only GBP is supported.
example: GBP
responses:
'200':
description: Successful Request - The payment request has been authorised.
content:
application/json:
schema:
$ref: '#/components/schemas/initiatePaymentResponse'
example:
authorisationUrl: https://as.aspsp.ob.forgerock.financial/oauth2/realms/root/realms/openbanking/authorize?client_id=9c54251f-3a45-4441-9665-02ef6be588b3&response_type=code+id_token&state=383a7a2cf3d94f99806c87beb71a
/withdraw:
post:
tags:
- Client hosted
summary: Withdraw a payment request
description: Withdraw a payment request if it is no longer needed
operationId: postwithdrawsmartrequestbdrasync
parameters:
- name: participantid
in: header
description: Format - int32. System generated unique identifier of the participant.
required: true
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WithdrawSmartRequestMessage'
example:
senderParticipantId: 0
recipientParticipantId: 0
payerAliasType: EMAIL
payerAliasValue: "Email : example@mail.com\r\nPhone : +countrycode 7712345678."
smartRequestId: string
messageType: REQUESTTOPAY
withdrawReasonCode: string
withdrawReasonText: string
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/WithdrawSmartRequestMessageResponse'
example:
senderParticipantId: 0
recipientParticipantId: 0
payerAliasType: EMAIL
payerAliasValue: "Email : example@mail.com\r\nPhone : +countrycode 7712345678."
smartRequestId: string
messageType: REQUESTTOPAY
withdrawReasonCode: string
withdrawReasonText: string
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
'422':
description: Client Error
components:
schemas:
SmartRequestUrls:
type: object
properties:
bdrRedirectURL:
type: string
bdrCancelURL:
type: string
bdrErrorURL:
type: string
description: A list of URLs associated with the Smart Request (currently used with BDR smart requests).
WithdrawReason:
type: object
properties:
withdrawReasonCode:
type: string
description: Gets or sets withdrawReasonCode.
withdrawReasonText:
type: string
description: Gets or sets withdrawReasonText.
description: WithdrawReason.
WithdrawSmartRequestMessage:
required:
- senderParticipantId
- smartRequestId
- withdrawReasonCode
- withdrawReasonText
type: object
properties:
senderParticipantId:
minLength: 1
type: integer
description: Gets or sets the property. The Billerparticipant is identified as the sender of
this message type.
format: int32
recipientParticipantId:
type: integer
description: Gets or sets the property. The Payerparticipant is identified as the recipient
of this message type.
format: int32
payerAliasType:
enum:
- EMAIL
- PHONE
type: string
description: Gets or sets the property. Method by which the Payer is identified. This can be
either Email or Phone.
payerAliasValue:
type: string
description: Gets or sets the property. Phone number or email address. Dependent upon the Payer
Alias Type.
example: "Email : example@mail.com\r\nPhone : +countrycode 7712345678."
smartRequestId:
minLength: 1
type: string
description: Gets or sets the property. System generated unique identifier for a Smart Request
transaction.
messageType:
enum:
- REQUESTTOPAY
- WITHDRAW
- EXTENSIONDECLINED
- DECLINE
- DECLINEBLOCK
- EXTENSIONGRANTED
- PAYPARTIAL
- PAYALL
- REQPAYEXTENSION
- READ
- MATCHALIAS
- MATCHALIASPEND
- MATCHREGPEND
- MATCHREG
- PAYMENTFAILURE
- PAYMENTINPROGRESS
type: string
description: "Gets or sets the property. The message type needs to be 'WITHDRAW'.\r\n\r\
\nWITHDRAW - Indicates that the Biller withdraws the Smart Request.\r\n"
withdrawReasonCode:
minLength: 1
type: string
description: Gets or sets the property. Reason code for withdrawing the Smart Request.
withdrawReasonText:
minLength: 1
type: string
description: Gets or sets the property. Description text of the selected withdraw reason code.
description: Class Withdraw Smart Request.
example:
senderParticipantId: 0
recipientParticipantId: 0
payerAliasType: string
payerAliasValue: string
smartRequestId: '#'
messageType: string
withdrawReasonCode: '#'
withdrawReasonText: '#'
WithdrawSmartRequestMessageResponse:
type: object
properties:
senderParticipantId:
type: integer
description: Gets or sets the property. The Billerparticipant is identified as the sender of
this message type.
format: int32
recipientParticipantId:
type: integer
description: Gets or sets the property. The Payerparticipant is identified as the recipient
of this message type.
format: int32
payerAliasType:
enum:
- EMAIL
- PHONE
type: string
description: Gets or sets the property. Method by which the Payer is identified. This can be
either Email or Phone.
payerAliasValue:
type: string
description: Gets or sets the property. Phone number or email address. Dependent upon the Payer
Alias Type.
example: "Email : example@mail.com\r\nPhone : +countrycode 7712345678."
smartRequestId:
type: string
description: Gets or sets the property. System generated unique identifier for a Smart Request
transaction.
messageType:
enum:
- REQUESTTOPAY
- WITHDRAW
- EXTENSIONDECLINED
- DECLINE
- DECLINEBLOCK
- EXTENSIONGRANTED
- PAYPARTIAL
- PAYALL
- REQPAYEXTENSION
- READ
- MATCHALIAS
- MATCHALIASPEND
- MATCHREGPEND
- MATCHREG
- PAYMENTFAILURE
- PAYMENTINPROGRESS
type: string
description: "Gets or sets the property. The message type needs to be WITHDRAW.\r\n\r\n\
WITHDRAW - Indicates that the Biller withdraws the Smart Request.\r\n"
withdrawReasonCode:
type: string
description: Gets or sets the property. Reason code for withdrawing the Smart Request.
withdrawReasonText:
type: string
description: Gets or sets the property. Description text of the selected withdraw reason code.
description: Class Withdraw SmartRequest Message Response.
example:
senderParticipantId: 0
recipientParticipantId: 0
payerAliasType: string
payerAliasValue: string
smartRequestId: string
messageType: string
withdrawReasonCode: string
withdrawReasonText: string
initiatePaymentResponse:
required:
- authorisationUrl
properties:
authorisationUrl:
type: string
example: https://as.aspsp.ob.forgerock.financial/oauth2/realms/root/realms/openbanking/authorize?client_id=9c54251f-3a45-4441-9665-02ef6be588b3&response_type=code+id_token&state=383a7a2cf3d94f99806c87beb71a
example:
bdrRedirectURL: string
bdrCancelURL: string
bdrErrorURL: string
senderParticipantId: 0
recipientParticipantId: 0
billerParticipantId: 0
billerContactEmail: string
billerContactPhone: string
billerReference: '#'
billerAccountId: '#'
payerParticipantId: 0
payerAliasType: string
payerAliasValue: string
payerReference: '#'
amountDue: 0.561416617508866
amountCurrency: '#'
dueDate: '#'
expiryDate: '#'
partialPaymentAllowed: false
dueDateExtensionsAllowed: false
partialPaymentsRemaining: 0
attachmentBatchId: string
refundAccountRequired: false
initiatePaymentRequest:
required:
- ordoInstitutionId
- smartRequestId
- amount
- currency
properties:
ordoInstitutionId:
type: string
description: The identifier of the institution, obtained by calling the /institutions endpoint.
example: int_modelo_sandbox
smartRequestId:
type: string
description: The unique identifier of the Smart Request to pay.
example: DHEY282H
amount:
minimum: 0.01
type: number
description: The amount to pay
format: double
example: 39.89
currency:
maxLength: 3
minLength: 3
type: string
description: The currency used for the transaction, specified using the ISO 4217 currency code
standard. Only GBP is supported.
example: GBP
InstitutionsResponse:
type: array
items:
required:
- media
- features
- ordoInstitutionId
- name
type: object
properties:
media:
type: object
properties:
logoUrl:
type: string
iconUrl:
type: string
features:
type: array
items:
type: string
ordoInstitutionId:
type: string
name:
type: string
OrdoValidationProblemDetails:
type: object
properties:
code:
type: string
errors:
type: object
additionalProperties:
uniqueItems: false
type: array
items:
type: string
readOnly: true
type:
type: string
title:
type: string
status:
type: integer
format: int32
detail:
type: string
instance:
type: string
additionalProperties:
type: object
example:
code: string
errors: {}
type: string
title: string
status: 0
detail: string
instance: string
NewBDRSmartRequestResponse:
type: object
properties:
bdRlink:
type: string
smartRequestId:
type: string
creationDateTime:
type: string
status:
type: string
paymentStatus:
type: string
billerParticipantId:
type: integer
billerContactEmail: {}
billerContactPhone: {}
billerReference:
type: string
billerAccountId:
type: string
payerParticipantId:
type: integer
payerAliasType:
type: string
payerAliasValue:
type: string
payerReference:
type: string
amountDue:
type: integer
amountCurrency:
type: string
dueDate:
type: string
expiryDate:
type: string
dueDateExtensionsAllowed:
type: boolean
partialPaymentAllowed:
type: boolean
partialPaymentsRemaining:
type: integer
attachmentBatchId:
type: string
refundAccountRequired:
type: boolean
smartRequestUrls:
type: object
properties:
bdrRedirectURL:
type: string
bdrCancelURL:
type: string
bdrErrorURL:
type: string
NewBDRSmartRequestMessage:
required:
- senderParticipantId
- billerParticipantId
- billerReference
- billerAccountId
- payerReference
- amountDue
- amountCurrency
- dueDate
- expiryDate
- partialPaymentAllowed
- dueDateExtensionsAllowed
- partialPaymentsRemaining
type: object
properties:
bdrRedirectURL:
type: string
description: "The url set for the return button on the final page of our payment journey when\
\ your customer has successfully completed their payment.\r\nThis will then return your customers\
\ to your site once clicked using the value provided."
bdrCancelURL:
type: string
description: "The url set for the button on the first page of our payment journey labelled “Cancel\
\ payment” on desktop and “Cancel” on mobile.\r\nThis will then return your customers to your\
\ site once clicked using the value provided.\r\nDefaults to bdrRedirectURL if omitted."
bdrErrorURL:
type: string
description: "The url set for the return button on the final page of our payment journey when\
\ your customer has been unable to complete a payment with their bank or when an error has\
\ occurred.\r\nThis will return your customers to your site once clicked using the value provided.\
\ Defaults to bdrRedirectURL if omitted."
senderParticipantId:
minLength: 1
type: integer
description: Gets or sets the property. Identifies the Biller initiating the Smart Request.
Should be populated as the billerParticipantId for a new Smart Request.
format: int32
recipientParticipantId:
type: integer
description: Gets or sets the property. Identifies the Payer who is the recipient of the Smart
Request. Only applicable for payment of bundle requests. Not applicable for requests from
end user applications.
format: int32
billerParticipantId:
minLength: 1
type: integer
description: Gets or sets the property. Unique identifier of the Biller.
format: int32
billerContactEmail:
maxLength: 320
minLength: 0
type: string
description: Gets or sets the property. Contact email of the Biller.
billerContactPhone:
maxLength: 15
minLength: 0
type: string
description: Gets or sets the property. Contact phone number of the Biller.
billerReference:
maxLength: 18
minLength: 1
pattern: ^[a-zA-Z0-9-/.#%*()}{:;+=!,?@&<>'"/\r ]*$
type: string
description: Gets or sets the property. Reference information provided by the Biller to the
Payer.
billerAccountId:
minLength: 1
type: string
description: Gets or sets the property. Unique identifier for the Biller account.
payerParticipantId:
type: integer
description: Gets or sets the property. Refers to the payer within a Smart request transaction.
Unique identifier of the Payer.
format: int32
payerAliasType:
enum:
- EMAIL
- PHONE
type: string
description: Gets or sets the property. Method by which the Payer is identified. This can be
either Email or Phone.
payerAliasValue:
maxLength: 320
minLength: 0
type: string
description: Gets or sets the property. Phone number or email address. Dependent upon the Payer
Alias Type.
example: "Email : example@mail.com\r\nPhone : +countrycode 7712345678."
payerReference:
maxLength: 128
minLength: 1
type: string
description: Gets or sets the property. Reference information provided by the Payer to the Biller.
amountDue:
minLength: 1
type: number
description: Gets or sets the property. Total amount to be paid by the Payer to the Biller in
the Smart Request.
format: double
amountCurrency:
minLength: 1
enum:
- GBP
type: string
description: "Gets or sets the property. Currency of the payment in the Smart Request. For this\
\ release it should be set to GBP.\r\n\r\n'GBP' - 'British Pound'.\r\n"
dueDate:
minLength: 1
type: string
description: Gets or sets the property. Refers to the date by which the complete payment needs
to be made by the Payer to the Biller in a Smart Request.
format: date-time
example: 2017-07-21T17:32:28Z.
expiryDate:
minLength: 1
type: string
description: Gets or sets the property. Date on which the Smart Request expires.
format: date-time
example: 2017-07-21T17:32:28Z.
partialPaymentAllowed:
minLength: 1
type: boolean
description: "Gets or sets the property. Indicates if payment of the Smart Request can be made\
\ in partial amounts.\r\nThis option can be chosen by the Biller when creating the Smart Request."
dueDateExtensionsAllowed:
minLength: 1
type: boolean
description: Gets or sets the property. Indicates whether an extension to the original due date
is allowed within a Smart Request.
partialPaymentsRemaining:
minLength: 1
type: integer
description: Gets or sets the property. Indicates the remaining number of partial payments allowed
for the Smart Request, if partial payments are set to be allowed.
format: int32
attachmentBatchId:
type: string
description: Gets or sets the property. Unique identifier of the Batch containing documents
attached to the Smart Request. A Batch can hold multiple documents.
refundAccountRequired:
minLength: 1
type: boolean
description: Gets or sets the property. Indicates whether the payer account details should be
obtained for future manual refund capability.
description: class NewSmartRequest.
example:
bdrRedirectURL: string
bdrCancelURL: string
bdrErrorURL: string
senderParticipantId: 0
recipientParticipantId: 0
billerParticipantId: 0
billerContactEmail: string
billerContactPhone: string
billerReference: '#'
billerAccountId: '#'
payerParticipantId: 0
payerAliasType: string
payerAliasValue: string
payerReference: '#'
amountDue: 0.495864380177812
amountCurrency: '#'
dueDate: '#'
expiryDate: '#'
partialPaymentAllowed: false
dueDateExtensionsAllowed: false
partialPaymentsRemaining: 0
attachmentBatchId: string
refundAccountRequired: false
securitySchemes:
apiKeyHeader:
type: apiKey
name: Ocp-Apim-Subscription-Key
in: header
apiKeyQuery:
type: apiKey
name: subscription-key
in: query
security:
- apiKeyHeader: []
- apiKeyQuery: []
x-readme:
explorer-enabled: true
proxy-enabled: true
samples-enabled: true