Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
3038 lines (2970 sloc) 94.5 KB
swagger: '2.0'
info:
description: |-
"**** GENERATED BY emandates-rest APPLICATION ****"
version: '2.3'
title: EMandates REST API
termsOfService: For internal use only
contact:
name: sentenial
url: 'https://sentenial.com'
email: engineering@sentenial.com
license:
name: For internal use only
url: 'https://sentenial.com'
host: api.nuapay.com
basePath: "/"
tags:
- name: Introduction
description: |-
Welcome to the Nuapay E-Mandates REST API.
Are you new to SEPA Direct Debit? If you are refer to this guide <a href="https://www.sentenial.com/en/solutions/corporates/sepa-direct-debits">SEPA DD Guide</a> for an overview of the Direct Debit Scheme.
Creating E-Mandates via API allows your payers to digitally sign mandates and greatly speeds up your Direct Debit payment collection process.
This API reference provides information on available endpoints and how to interact with them.
- name: Getting Started
description: |-
To register for the service and get your API key, visit <a href="www.nuapay.com">www.nuapay.com</a> or e-mail <a href="api.support@nuapay.com">api.support@nuapay.com</a>.
If you would prefer to talk to someone, call 00353 (0)1 901 2398.
We'll have you up and running in no time!
- name: Backward Compatibility
description: |-
The following changes are considered backward compatible:
* Adding new API endpoints, new endpoints are independent.
* Adding new optional request parameters to existing API endpoints.
* Adding new response properties to existing API endpoints. You should pay particular attention to this point if you are mapping your JSON responses to another programming language construct.
* Changing of the property order in existing API responses.
* Changing the length of object IDs (object IDs will never exceed 255 characters).
* Changing the messages returned by validation or other error messages.
* Output Encoding Rules are applied to some services and will be applied to all services in the future.
- name: Integration Steps
description: |-
REST API integration is the most flexible way to integrate with the E-Mandate platform,
* It allows you to prepopulate your payer’s details on the mandate form.
* It also offers real time feedback into your own (Merchant) system when a mandate is signed.
The following models describe typical integration scenarios with the E-Mandate platform, allowing you to capture signed mandates from your payers.
- name: E-Mandate Management
description: |-
Each integration method requires the creation of a conversationToken that uniquely identifies details about the merchant and the payer.
Use Prepare E-Mandate to send the details of the E-Mandate that you want to create and obtain a conversationToken.
A successful Prepare E-Mandate request will result in either the creation of a mandate (debtorInputAllowed=false) and a conversationToken or just the conversationToken.
Depending on authorization method further processing may be neccessary with Authorization via Checkbox or Authorization via One-Time-Password (OTP)
- name: API Endpoints
description: |-
Once you have your API key, you can send requests to the following endpoints:
`Live: https://api.nuapay.com`
`UAT: https://sandbox.nuapay.com/`
Our APIs are RESTful and we use JSON format for submitting and retrieving data.
<!-- A note on IDs: All IDs used in URIs are encoded. IDs used in request bodies are unencoded. -->
To view all available Nuapay REST endpoints, see the [Resources](#resources) sections below.
- name: Authentication
description: |-
The E-Mandates API is protected with a unique identifier in the request header, the Token. This token identifies a sppecific merchant and allows any payer details (linked to that merchant) to be gathered when a mandate is created.
To get a token you call Prepare E-Mandate with your API key. Once you have the token you can call all of the endpoints related to E-Mandate processing (the conversation endpoints).
The token acts like a session ID in traditional web development
- name: E-Mandates API
description: |-
Access to the E-Mandates API is controlled by HTTP Basic authentication.
Provide your API key as the basic authentication user name, encoded in Base64. No password needs to be provided, however the request must be made from an allowed IP address configured in Nuapay.
API authentication header format:
Authorization: Basic Base64({API_Key}:)
All API requests must be made over HTTPS, calls made over plain HTTP will fail. All API requests must be authenticated.
<br>
> To authorize, use this code:
```bash
# With curl, you can just pass BASIC auth header
# (-u option) with each request
$ curl 'https://api.nuapay.com/emandates'
-u bb09c2b6a9478720765c757a8bcadf1aa1fb31554566a21118c9c75e26c29686:
```
> Make sure to replace `bb09c2b6a...` with your API key.
<br>
- name: Conversation API
description: |-
Access to the Conversation API requires you to provide a Token HTTP header representing a conversation token. The token is returned by the Prepare E-Mandate service.
API Token header format:
Token: {CONVERSATION_TOKEN}
<br>
> To authorize, use this code:
```bash
$ curl 'https://emandates.nuapay.com/init'
-H 'Token: 42b0fd59-b196-4501-bccb-56481dde6900'`
```
> Make sure to replace `42b0fd59...` with your API key.
<br>
- name: Output Encoding Rules
description: |-
The code converts untrusted input into a safe form where the input is displayed as data to the user without executing as code in the browser.
The implementation is based on the following <a href="https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet#Output_Encoding_Rules_Summary">OWASP recommendations</a>.
- name: HTTP Response Codes
description: |-
You may encounter the following response codes. Selected response codes will contain more information to help identify problems.
<nobr>Status Code</nobr> | Description | Usage
---------- | ------- | -------
200 | OK | The request completed successfully.
201 | Created | A new resource has been created successfully. The resource is appended to the response.
400 | Bad Request | The request was malformed. The response body will include an error providing further information.
401 | Unauthorized | Your API key is wrong.
403 | Forbidden | The client has provided a valid Authentication header, but it does not have permission to access this resource.
404 | Not Found | The requested resource did not exist.
405 | Method Not Allowed | When a HTTP method is being requested that isn't allowed.
410 | Gone | The API requested has been removed from our servers.
412 | Precondition Failed | Certain unmet conditions must be fulfilled before the request to be processed e.g. timestamp is too old.
415 | Unsupported Media Type | If incorrect content type was provided as part of the request (e.g. other than "application/json").
422 | Unprocessable Entity | Used for validation errors. More details will be provided in response body.
500 | Internal Server Error | We had a problem with our server. Try again later and if the problem persists contact the Nuapay application support team.
501 | Not Implemented | When the endpoint is not implemented yet.
503 | Service Unavailable | We're temporarially offline for maintanance. Please try again later.
- name: Errors
description: |-
Whenever an error response with status `400` or `422` is returned, the body will contain a JSON object that describes the problem. The error object has the following structure.
Path | Type | Description
---- | --------- | -----------
returnCode | String | Error Code
returnDescription | String | Error description
details | Array | The object holds collection of validation errors. It is returned only for '8002' returnCode.
details[].code | String | Error Code
details[].field | String | JSON path to request object property the error is related to
details[].description | Error description |
details[].resourceUri | String | This property holds existing resource URI in case the validation error states the resource already exist and can't be created. It is returned only for `returnCode` equal to `9999`.
See [Error Codes](#error-codes) section for details.
<br>
> For example, a request that attempts to create a payment schedule with invalid start date will produce a
`400 Bad Request` response:
``` http
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"returnCode" : "7043",
"returnDescription" : "Start date is invalid"
}
```
- name: Form Validation Errors vs Permanent Errors
description: |-
Form validation errors are all returned together with a 400 HTTP response code. All other HTTP codes should be treated as permanent errors.
- name: Localized Errors Descriptions
description: |-
Form validation errors arelocalized in the following languages, English (default), French, Dutch, Spanish, German.
To get localized error descriptions, please set the Accept-Language header in your requests. If the Accept-Language is set to a non-supported language, the description will default to English.
- name: Error Codes
description: |-
The following is a list of error codes with descriptions as returned when a request fails.
Code | Description
---- | -----------
3027 | Duplicate UMR Detected.
3501 | Invalid mandate logo Provided.
3502 | Invalid mandate signed alert email.
3503 | Invalid primary branding colour.
3504 | Invalid secondary branding colour.
3505 | Invalid border branding colour.
3506 | Invalid third party signing.
3507 | Invalid authorization method.
3508 | Invalid debtor communication.
3509 | Invalid success url.
3510 | Invalid failure url.
3511 | Success url is required.
3512 | Failure url is required.
4000 | Input validation unsuccessful.
6999 | Valid JSON structure is required.
7005 | Max file size exceeded.
7006 | Invalid file supplied. File extension doesn't match file format.
7007 | Not allowed file format.
7008 | Invalid file name.
7009 | Invalid contract type.
7010 | Debtor Name is invalid or max length is exceeded.
7011 | Address Line1 is invalid or max length is exceeded.
7012 | Address Line2 is invalid or max length is exceeded.
7013 | Address Town is invalid or max length is exceeded.
7014 | Address Postal Code is invalid or max length is exceeded.
7016 | Address ISO Country Code is invalid.
7018 | Debtor Email is invalid or max length is exceeded.
7020 | Mobile Number is invalid or max length is exceeded.Valid Format:(country code)(Number). Sample:{0}{1}
7021 | Mandate Id is invalid or max length is exceeded.
7022 | Contract Reference is invalid or max length is exceeded.
7025 | Mandate Type is invalid.
7026 | Debtor IBAN is invalid.
7028 | The creditor IBAN is invalid.
7065 | Debtor domestic bank code max length exceeded.
7066 | Debtor domestic branch code max length exceeded.
7067 | Debtor domestic account country is invalid or max length exceeded.
7068 | Debtor domestic check sum max length exceeded.
7076 | Debtor domestic account number max length exceeded.
7097 | Scheme Type is invalid or max length is exceeded.
7100 | The field is required.
7101 | Value is invalid or max length is exceeded.
7102 | Creditor Scheme Id is invalid or max length is exceeded.
7103 | The IBAN check sum is incorrect. Please check your entry correctness
7104 | Confirmation code is not valid.
7105 | Location is not valid.
7117 | Tick to Accept Mandate.
7118 | Boolean parameter value must be either 'true' or 'false'.
7119 | Domain is invalid or max length is exceeded.
7121 | Maximum number of IBAN validation attempts exceeded
7122 | Maximum number of confirmation code validation attempts exceeded
7123 | Invalid email domain
7124 | Invalid email url
7125 | The Authentication code you have provided has expired.
7126 | Contract ID is invalid or max length is exceeded.
8000 | Unexpected exception occured. Please try again later.
8001 | Current state of conversation does not allow you to make call to this endpoint.
8002 | Input validation errors occured. Please check details.
8003 | Invalid encoded data.
8004 | Invalid conversation.
8005 | Conversation locked. Please retry in few moments.
8006 | debtorInputAllowed cannot be FALSE for the BACS scheme.
8007 | displayExtendedData cannot be FALSE for the BACS scheme.
8008 | hiddenFields address cannot be TRUEfor the BACS scheme.
8009 | hiddenFields mobileNumber cannot be TRUE for the BACS scheme.
8010 | hiddenFields contractReference cannot be TRUE for the BACS scheme.
8011 | Requested resource is not available
8020 | Must provide a GB IBAN for the BACS scheme.
8021 | accountCountry must be GB for the BACS scheme.
8022 | Contract deleted
8023 | Contract file is not found
- name: Versioning
description: |-
The current version of the Nuapay API is version 1.0. Changes may occur to this version of the API without a version number update. Any changes that do not require a new API version follow our backward compatibility guidelines. Different versions will be managed via a HTTP header indicating the version of the API that the client is using.
Requests with no version number or an unmatched version number will be treated as version 1.0 requests.
- name: Changelog
description: |-
## 2018-05-04
* Fixed issues with 'Contract' endpoint object and examples & introduced resend endpoint to integration steps. Introduced explination of the 'Links' array to the 'Resources' section.
## 2018-02-16
* Added Upload Contract Document, Retrieve Contract, Retrieve Contract Document.
## 2017-04-27
* Updated E-Mandate Configuration Options. Added emailDomain and emailURL.
## 2016-11-08
* Initial version
x-tagGroups:
- name: Generial Info
tags:
- Introduction
- Getting Started
- API Endpoints
- name: Integration
tags:
- Integration Steps
- E-Mandate Management
- Backward Compatibility
- name: Authentication
tags:
- Authentication
- E-Mandates API
- Conversation API
- name: Security
tags:
- Output Encoding Rules
- name: Contracts
tags:
- EMandates-Contracts
- name: E-Mandates
tags:
- EMandates-API
- name: E-Mandates Conversation Steps
tags:
- EMandates-Conversation
- name: E-Mandates Configuration
tags:
- EMandates-Configuration
- name: Responses
tags:
- HTTP Response Codes
- Errors
- Form Validation Errors vs Permanent Errors
- Localized Errors Descriptions
- Error Codes
- name: Versioning
tags:
- Versioning
- name: Changelog
tags:
- Changelog
schemes:
- http
paths:
/contracts:
post:
tags:
- EMandates-Contracts
summary: Contract Document
description: |-
A POST request used to upload contract in PDF format.
The request must contain the multipart/form-data content type with,
* A json part containing input parameters in a JSON structure.
* A file part with file content and a file content type.
Note that in the json part,
* If 'fileName' is not provided then file part will be used to derive the file name.
* If 'contractType' is not provided then default value 'OOFF' will be used.
operationId: uploadContractPdfFileUsingPOST
consumes:
- multipart/form-data
produces:
- application/json
parameters:
- name: file
in: formData
description: file
required: true
type: file
- name: json
in: query
description: Due to limitation of the Swagger 2.0 json see ContractRequest object in this swagger for object definition.
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/ContractResponseEnvelope'
examples:
application/json:
uri: \contracts\lyboyynmqp
data:
id: lyboyynmqp
uri: \contracts\lyboyynmqp
contractType: OOFF
links: []
400:
description: Bad request
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: "8002"
returnDescription: Input validation errors occured. Please check details.
details:
-
code: "7009"
field: contractType
description: Invalid contract type
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
415:
description: Unsupported Media Type
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
422:
description: Unprocessable Entity
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: "8002"
returnDescription: Input validation errors occured. Please check details.
details:
-
code: "7008"
field: fileName
description: Invalid file name
security:
- OriginatorOAuth2: []
- OriginatorApiKey: []
/contracts/{contractId}:
get:
tags:
- EMandates-Contracts
summary: Get contract
description: A GET request used to retrieve a contract.
operationId: getContractDetailsUsingGET
produces:
- application/json
parameters:
- name: contractId
in: path
description: Contract ID of the contract to be returned.
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/ContractDetailsResponseEnvelope'
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
404:
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
410:
description: Gone
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
security:
- OriginatorOAuth2: []
- OriginatorApiKey: []
/contracts/{contractId}/document:
get:
tags:
- EMandates-Contracts
summary: Contract Document
description: A GET request is used to retrieve a contract PDF file.
operationId: getPdfFileUsingGET
produces:
- '*/*'
- application/pdf
parameters:
- name: contractId
in: path
description: Contract ID of the contract to be returned.
required: true
type: string
responses:
200:
description: OK
schema:
type: string
format: binary
example: <<<<pdf-content>>>>
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
404:
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
410:
description: Gone
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
security:
- OriginatorOAuth2: []
- OriginatorApiKey: []
/conversations/confirm:
get:
tags:
- EMandates-Conversation
summary: Confirm
description: A GET action used to retrieve UI details for the'Confirm' conversation step.
operationId: confirmMandateGetUsingGET
produces:
- application/json
parameters:
- name: Token
in: header
description: Token representing the conversation as provided in the prepare mandate response.
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/ConfirmMandateGetResponseEnvelope'
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
post:
tags:
- EMandates-Conversation
summary: Confirm
description: A POST action used to push a 'Confirm' conversation to the next step.
operationId: confirmMandatePostUsingPOST
consumes:
- application/json
produces:
- application/json
parameters:
- name: Token
in: header
description: Token representing the conversation as provided in the prepare mandate response.
required: true
type: string
- in: body
name: request
required: true
schema:
$ref: '#/definitions/ConfirmMandatePostRequest'
responses:
200:
description: OK
schema:
$ref: '#/definitions/ConfirmMandatePostResponseEnvelope'
400:
description: Bad request
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: 8002
returnDescription: Input validation errors occured. Please check details.
details:
-
code: 7104
field: code
description: Confirmation code is not valid.
resourceUri: null
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
415:
description: Unsupported Media Type
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
422:
description: Unprocessable Entity
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: 8001
returnDescription: Current state of conversation does not allow you to make call to this endpoint
details: null
/conversations/contract:
get:
tags:
- EMandates-Conversation
summary: Download contract document
description: Download contract document
operationId: conversationContractGetUsingGET
produces:
- application/pdf
parameters:
- name: Token
in: header
description: Conversation token
required: true
type: string
responses:
200:
description: OK
schema:
type: string
format: binary
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
/conversations/document:
get:
tags:
- EMandates-Conversation
summary: Document
description: A GET action used to retrieve the mandate document body.
operationId: generatePdfGetUsingGET
produces:
- application/pdf
parameters:
- name: Token
in: header
description: Token representing the conversation as provided in the prepare mandate response.
required: true
type: string
responses:
200:
description: OK
schema:
type: string
format: binary
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
/conversations/init:
get:
tags:
- EMandates-Conversation
summary: Initialize Conversation
description: A GET action used to verify where you are in the conversation and what the next available view is. Can be called at any point in the conversation.
operationId: initGetUsingGET
produces:
- application/json
parameters:
- name: Token
in: header
description: Token representing the conversation as provided in the prepare mandate response.
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/InitGetResponseEnvelope'
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
/conversations/resend:
get:
tags:
- EMandates-Conversation
summary: Resend
description: A GET request included only for consistency with other e-mandate endpoints.
operationId: resendOtpPostUsingGET
produces:
- application/json
parameters:
- name: Token
in: header
description: Token representing the conversation as provided in the prepare mandate response.
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/ResendGetResponseEnvelope'
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
post:
tags:
- EMandates-Conversation
summary: Resend
description: A POST used to resend the e-mail or SMS authorization code. Can return two views in the response, 'confirm' or 'resend' with 'resend only returned as long as the maximum number of resend attempts have not been exceeded.
operationId: resendOtpPostUsingPOST
consumes:
- application/json
produces:
- application/json
parameters:
- name: Token
in: header
description: Token representing the conversation as provided in the prepare mandate response.
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/ResendPostResponseEnvelope'
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
415:
description: Unsupported Media Type
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
/conversations/settings:
get:
tags:
- EMandates-Conversation
summary: Settings
description: A GET action used to verify the originators e-mandate configuration. Also returns where you are in the conversation and what the next available view is, similar to Initialise Conversation.
operationId: settingsGetUsingGET
produces:
- application/json
parameters:
- name: Token
in: header
description: Token representing the conversation as provided in the prepare mandate response.
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/SettingsGetResponseEnvelope'
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
/conversations/sign:
get:
tags:
- EMandates-Conversation
summary: Sign
description: A GET action used to retrieve the pre-filled details (if populated in the Prepare E-Mandate request) for the sign conversation step.
operationId: signMandateGetUsingGET
produces:
- application/json
parameters:
- name: Token
in: header
required: true
type: string
description: Token representing the conversation as provided in the prepare mandate response.
responses:
200:
description: OK
schema:
$ref: '#/definitions/SignMandateGetResponseEnvelope'
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
post:
tags:
- EMandates-Conversation
summary: Sign
description: A POST action used to push a 'Sign' conversation to the next step.
operationId: signMandatePostUsingPOST
consumes:
- application/json
produces:
- application/json
parameters:
- name: Token
in: header
description: Token representing the conversation as provided in the prepare mandate response.
required: true
type: string
- in: body
name: request
required: true
schema:
$ref: '#/definitions/SignMandatePostRequest'
responses:
200:
description: OK
schema:
$ref: '#/definitions/SignMandatePostResponseEnvelope'
400:
description: Bad request
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: 8002
returnDescription: Input validation errors occured. Please check details.
details:
code: 7018
field: debtorDetails.email
description: Debtor Email is invalid or max length is exceeded.
resourceUri: null
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
415:
description: Unsupported Media Type
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
422:
description: Unprocessable Entity
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: 8001
returnDescription: Current state of conversation does not allow you to make call to this endpoint.
details: null
/conversations/verify:
get:
tags:
- EMandates-Conversation
summary: Verify
description: A GET action used to retrieve the UI details for the 'Verify' conversation step.
operationId: verifyGetUsingGET
produces:
- application/json
parameters:
- name: Token
in: header
description: Token representing the conversation as provided in the prepare mandate response.
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/VerifyGetResponseEnvelope'
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
post:
tags:
- EMandates-Conversation
summary: Verify
description: A POST action used to push the 'Verify' conversation to the next step.
operationId: verifyPostUsingPOST
consumes:
- application/json
produces:
- application/json
parameters:
- name: Token
in: header
description: Token representing the conversation as provided in the prepare mandate response.
required: true
type: string
- in: body
name: request
description: request
required: true
schema:
$ref: '#/definitions/VerifyPostRequest'
responses:
200:
description: OK
schema:
$ref: '#/definitions/VerifyPostResponseEnvelope'
400:
description: Bad request
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: 8002
returnDescription: Input validation errors occured. Please check details.
details:
code: 7100
field: code
description: The field is required.
resourceUri: null
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
415:
description: Unsupported Media Type
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
422:
description: Unprocessable Entity
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: 8001
returnDescription: Current state of conversation does not allow you to make call to this endpoint.
details: null
/emandates:
post:
tags:
- EMandates-API
summary: Prepare E-mandate
description: A POST request used to generate the E-Mandate session ID (token) and prepopulate merchant and payer details for the E-Mandate.
operationId: prepareMandateUsingPOST
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: prepareMandateRequest
required: true
schema:
"$ref": "#/definitions/PrepareMandateRequest"
responses:
201:
description: Created
schema:
$ref: '#/definitions/PrepareMandateResponseEnvelope'
400:
description: Bad request
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: 8002
returnDescription: Input validation errors occured. Please check details.
details:
-
code: 7026
field: debtorDetails.iban
description: Debtor IBAN is invalid.
resourceUri: null
401:
description: Bad credentials
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Access denied
schema:
$ref: '#/definitions/ErrorResponse'#
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
415:
description: Unsupported Media Type
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
422:
description: Unprocessable Entity
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: 8001
returnDescription: Current state of conversation does not allow you to make call to this endpoint.
details: null
security:
- OriginatorOAuth2: []
- OriginatorApiKey: []
/emandates/{conversationToken}:
get:
tags:
- EMandates-API
summary: Prepare E-mandate
description: A GET request used to retrieve the prepared e-mandate based on the generated token.
operationId: viewMandateUsingGET
produces:
- application/json
parameters:
- name: conversationToken
in: path
description: Token representing the conversation as provided in the prepare mandate response.
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/EMandateDetailsResponseEnvelope'
examples:
application/json:
uri: /emandates/42b0fd59-b196-4501-bccb-56481dde6900
data:
uri: /emandates/42b0fd59-b196-4501-bccb-56481dde6900
token: 42b0fd59-b196-4501-bccb-56481dde6900
createDate: "2018-06-21"
authenticationDate: null
merchantDetails:
name: null
address:
line1: null
line2: null
town: null
postCode: null
country: null
creditorSchemeId: BE31ZZZ12345
schemeType: CORE
mandateId: 1234567899
mandateType: OOFF
contractReference: Contract reference
contractId: 6p2lzp8amv
iban: GB47SELN00999912345678
domain: http://domain.com
debtorDetails:
name: Debtor Name
mobileNumber: 35312312312
email: debtor@email.com
iban: GB94SELN00999976543215
bic: SELNGB21
domesticBranchCode: null
domesticAccountNumber: null
domesticBankCode: null
domesticCheckSum: null
accountCountry: null
address:
line1: Address Line 1
line2: Address Line 2
town: Town
postCode: 123123
country: IE
links: []
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
404:
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
security:
- OriginatorApiKey: []
/prepare/{emailToken}:
post:
tags:
- EMandates-API
summary: Prepare Conversation
description: A POST request used to start a conversation with an emailToken. emailToken token is part of the link sent as part of the eMail flow.
operationId: preparePostUsingPOST
consumes:
- application/json
produces:
- application/json
parameters:
- name: emailToken
in: path
description: emailToken as generated as part of the the e-mail flow.
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/PrepareConversationPostResponseEnvelope'
400:
description: Bad request
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
404:
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
415:
description: Unsupported Media Type
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
422:
description: Business validations failed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: 8001
returnDescription: Current state of conversation does not allow you to make call to this endpoint.
details: null
security:
- OriginatorOAuth2: []
- OriginatorApiKey: []
/schemes/{schemeId}/config/emandates:
get:
tags:
- EMandates-Configuration
summary: Configuration
description: GET endpoint used to retrieve an organizations e-mandate configuration details.
operationId: retrieveConfigUsingGET
produces:
- application/json
parameters:
- name: schemeId
in: path
description: Encoded scheme ID.
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/ConfigurationResponseEnvelope'
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
404:
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
security:
- OriginatorOAuth2: []
- OriginatorApiKey: []
x-sentenial:
internal: true
put:
tags:
- EMandates-Configuration
summary: Configuration
description: PUT endpoint used to set an organizations e-mandate configuration.
operationId: updateConfigUsingPUT
consumes:
- application/json
produces:
- application/json
parameters:
- in: body
name: configurationRequest
description: configurationRequest
required: true
schema:
$ref: '#/definitions/ConfigurationRequest'
- name: schemeId
in: path
description: Encoded scheme ID.
required: true
type: string
responses:
200:
description: OK
schema:
$ref: '#/definitions/ConfigurationResponseEnvelope'
400:
description: Bad request
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: 8002
returnDescription: Input validation errors occured. Please check details.
details:
code: 7118
field: hiddenFields.address
description: Boolean parameter value must be either 'true' or 'false'
401:
description: Unauthorized
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
403:
description: Forbidden
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
404:
description: Not Found
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
405:
description: Method Not Allowed
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
415:
description: Unsupported Media Type
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: null
returnDescription: null
details: null
422:
description: Unprocessable Entity
schema:
$ref: '#/definitions/ErrorResponse'
examples:
application/json:
returnCode: 8002
returnDescription: Input validation errors occured. Please check details.
details:
code: 8006
field: debtorInputAllowed
description: debtorInputAllowed cannot be FALSE for the BACS scheme.
security:
- OriginatorOAuth2: []
- OriginatorApiKey: []
x-sentenial:
internal: "true"
securityDefinitions:
OriginatorApiKey:
type: basic
OriginatorOAuth2:
type: oauth2
tokenUrl: https://api.nuapay.com/oauth/token_key
flow: password
definitions:
Address:
type: object
required:
- country
- line1
- town
properties:
country:
type: string
minLength: 0
maxLength: 2
description: Country ISO Code
line1:
type: string
minLength: 0
maxLength: 70
description: Address Line 1
line2:
type: string
minLength: 0
maxLength: 70
description: Address Line 2
postCode:
type: string
minLength: 0
maxLength: 16
description: Post Code
town:
type: string
minLength: 0
maxLength: 70
description: Town
title: Address
Branding:
type: object
properties:
borderColour:
type: string
description: Border colour for branding
logo:
type: string
description: Logo image url.
primaryColour:
type: string
description: Primary colour for branding.
secondaryColour:
type: string
description: Secondary colour for branding.
whiteLabelled:
type: boolean
description: Determines if the UI is white labeled or not.
title: Branding
ConfigurationBranding:
type: object
required:
- borderColour
- primaryColour
- secondaryColour
properties:
borderColour:
type: string
minLength: 7
maxLength: 7
pattern: ^#[0-9A-Fa-f]{6}$
description: |-
RGB Hex value for border colour used on e-mails
Default: '#fdca12' (Yellow as used by Nuapay)
Note: Used only if you use the Nuapay E-Mandates GUI
primaryColour:
type: string
minLength: 7
maxLength: 7
pattern: ^#[0-9A-Fa-f]{6}$
description: |-
RGB Hex value for background colour on buttons on E-Mandate screen
Default: '#fdca12' (Yellow as used by Nuapay)
Note: Used only if you use the Nuapay E-Mandates GUI
secondaryColour:
type: string
minLength: 7
maxLength: 7
pattern: ^#[0-9A-Fa-f]{6}$
description: |-
RGB Hex value for text colour on buttons on E-Mandate screen
Default: '#ffffff' (White)
Note: Used only if you use the Nuapay E-Mandates GUI
title: ConfigurationBranding
ConfigurationRequest:
type: object
required:
- failureUrl
- successUrl
properties:
authorization:
type: string
minLength: 0
maxLength: 32
enum:
- CHECK_BOX
- SMS_PASSWORD
- EMAIL_PASSWORD
description: |-
Authorization type for the E-Mandate signing.
Default: CHECK_BOX
Note: The SMS_PASSWORD and EMAIL_PASSWORD options enable authorization via One Time Password (OTP) sent via SMS or e-mail respectively.
branding:
$ref: '#/definitions/ConfigurationBranding'
debtorCommunication:
type: string
minLength: 0
maxLength: 32
enum:
- EMAIL
- NONE
description: Determines what communication method has been configured for this debtor.
debtorInputAllowed:
type: boolean
description: |-
Indicates if debtor/payer input will be allowed when signing the E-Mandate.
Default: true
Note: Used only if you use the Nuapay E-Mandates GUI.
displayExtendedData:
type: boolean
description: |-
Indicates if the GUI should display all mandate fields or just the required ones.
Default: true
Note: Used only if you use the Nuapay E-Mandates GUI.
emailDomain:
type: string
minLength: 0
maxLength: 255
description: |-
Domain name for e-mails issued by the E-Mandate solution.
Default: null - mail will come from @sentenial.com.
Note: It must be configured if you use your own E-Mandate GUI.
emailUrl:
type: string
minLength: 0
maxLength: 255
description: |-
URL for pages linked to in e-mails issued by the E-Mandate solution.
Default: null - links will start with the Nuapay URL.
Note: It must be configured if you use your own E-Mandate GUI.
failureUrl:
type: string
minLength: 0
maxLength: 2048
pattern: ^((?!\<|\>).)*$
description: URL which will be used when sending http redirect action after process fails.
hiddenFields:
$ref: '#/definitions/HiddenFieldsRequest'
logo:
type: string
minLength: 0
maxLength: 2048
pattern: ^((?!\<|\>).)*$
description: URL for Logo image.
mandateSignedEmail:
type: string
minLength: 0
maxLength: 254
pattern: .*@.*
description: An e-mail address for E-mail notification to you (the merchant) after the payer signs an E-Mandate.
successUrl:
type: string
minLength: 0
maxLength: 2048
pattern: ^((?!\<|\>).)*$
description: URL which will be used when sending http redirect action after process succeeds.
thirdPartySigning:
type: string
minLength: 0
maxLength: 32
enum:
- UNCERTIFIED
- MORPHO
description: Determines what certification method has been configured for this debtor.
whiteLabelled:
type: boolean
description: Determines if the UI will be white labeled or not.
title: ConfigurationRequest
example:
logo: https://www.nuapay.com/wp-content/themes/images/nuapay.png
mandateSignedEmail: null
thirdPartySigning: UNCERTIFIED
whiteLabelled: false
branding:
primaryColour: '#FF00FF'
secondaryColour: '#00FF00'
borderColour: '#FFCCFF'
authorization: SMS_PASSWORD
debtorCommunication: EMAIL
successUrl: https://success.com
failureUrl: https://failure.com
debtorInputAllowed: true
displayExtendedData: true
emailDomain: null
emailUrl: null
hiddenFields:
address: false
mobileNumber: false
contractReference: false
ConfigurationResponse:
type: object
properties:
uri:
type: string
logo:
type: string
description: URL for Logo image.
mandateSignedEmail:
type: string
thirdPartySigning:
type: string
enum:
- UNCERTIFIED
- MORPHO
whiteLabelled:
type: boolean
branding:
$ref: '#/definitions/ConfigurationBranding'
authorization:
type: string
enum:
- CHECK_BOX
- SMS_PASSWORD
- EMAIL_PASSWORD
description: |-
Authorization type for the E-Mandate signing.
Default: CHECK_BOX
Note: The SMS_PASSWORD and EMAIL_PASSWORD options enable authorization via One Time Password (OTP) sent via SMS or e-mail respectively.
debtorCommunication:
type: string
enum:
- EMAIL
- NONE
description: Determines what communication method has been configured for this debtor.
successUrl:
type: string
description: URL which will be used when sending http redirect action after process succeeds.
failureUrl:
type: string
description: URL which will be used when sending http redirect action after process fails.
debtorInputAllowed:
type: boolean
description: |-
Indicates if debtor/payer input will be allowed when signing the E-Mandate.
Default: true
Note: Used only if you use the Nuapay E-Mandates GUI.
displayExtendedData:
type: boolean
description: |-
Indicates if the GUI should display all mandate fields or just the required ones.
Default: true
Note: Used only if you use the Nuapay E-Mandates GUI.
emailDomain:
type: string
description: |-
Domain name for e-mails issued by the E-Mandate solution.
Default: null - mail will come from @sentenial.com.
Note: It must be configured if you use your own E-Mandate GUI.
emailUrl:
type: string
description: |-
URL for pages linked to in e-mails issued by the E-Mandate solution.
Default: null - links will start with the Nuapay URL.
Note: It must be configured if you use your own E-Mandate GUI.
hiddenFields:
$ref: '#/definitions/HiddenFieldsResponse'
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
title: ConfigurationResponse
ConfigurationResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/ConfigurationResponse'
uri:
type: string
description: Uri of requested resource.
title: ConfigurationResponseEnvelope
example:
uri: /schemes/8ow24y2pdx/config/emandates
data:
uri: /schemes/8ow24y2pdx/config/emandates
logo: https://www.nuapay.com/wp-content/themes/images/nuapay.png
mandateSignedEmail: null
thirdPartySigning: UNCERTIFIED
whiteLabelled: false
branding:
borderColour: '#FFCCFF'
primaryColour: '#FF00FF'
secondaryColour: '#00FF00'
authorization: SMS_PASSWORD
debtorCommunication: EMAIL
successUrl: https://success.com
failureUrl: https://failure.com
debtorInputAllowed: true
displayExtendedData: true
emailDomain: null
emailUrl: null
hiddenFields:
address: false
contractReference: false
mobileNumber: false
links: []
ConfirmMandateGetResponse:
type: object
properties:
debtorEmail:
type: string
description: Debtor email.
debtorMobileNumber:
type: string
description: Debtor mobile number.
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
merchantDetails:
$ref: '#/definitions/MerchantDetails'
uri:
type: string
description: Uri of requested resource.
title: ConfirmMandateGetResponse
ConfirmMandateGetResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/ConfirmMandateGetResponse'
uri:
type: string
description: Uri of requested resource.
title: ConfirmMandateGetResponseEnvelope
example:
uri: /conversations/conversations/confirm
data:
uri: /conversations/conversations/confirm
debtorEmail: debtor@email.com
debtorMobileNumber: 35312312312
merchantDetails:
name: Creditor Name
address:
line1: Address Line 1
line2: Address Line 2
town: Town
postCode: 123123
country: IE
creditorSchemeId: BE31ZZZ12345
schemeType: CORE
mandateId: 1234567899
mandateType: OOFF
contractReference: Contract reference
contractId: 50005
links: []
ConfirmMandatePostRequest:
type: object
properties:
code:
type: string
description: Users OTP code to be verified.
title: ConfirmMandatePostRequest
example:
code: 1234
ConfirmMandatePostResponse:
type: object
properties:
mandateInfo:
$ref: '#/definitions/MandateInfo'
uri:
type: string
description: Uri of requested resource.
views:
type: array
items:
$ref: '#/definitions/Link'
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
title: ConfirmMandatePostResponse
ConfirmMandatePostResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/ConfirmMandatePostResponse'
uri:
type: string
description: Uri of requested resource.
title: ConfirmMandatePostResponseEnvelope
example:
uri: /conversations/conversations/confirm
data:
uri: /conversations/conversations/confirm
mandateInfo:
encodedMandateId: 8ow24y2pdx
encodedSchemeId: 8ow24y2pdx
mandateId: 1234567899
signed: true
views:
- href: https://api.nuapay.com/conversations/conversations/document
rel: Document
links: []
ContractDetailsResponse:
type: object
properties:
id:
type: string
uri:
type: string
contractType:
type: string
enum:
- OOFF
- RCUR
deleted:
type: boolean
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
title: ContractDetailsResponse
ContractDetailsResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/ContractDetailsResponse'
uri:
type: string
title: ContractDetailsResponseEnvelope
example:
application/json:
uri: /contracts/8ow24y2pdx
data:
id: 8ow24y2pdx
uri: /contracts/8ow24y2pdx
contractType: OOFF
deleted: false
links: []
ContractRequest:
type: object
properties:
contractType:
type: string
default: OOFF
enum:
- OOFF
- RCUR
description: If not provided defaults to 'OOFF'.
fileName:
type: string
maxLength: 39
pattern: ^[0-9a-zA-Z\_\-\.]*$
description: Specifies the PDF file name. If not provided uses the name of the uploaded file.
example:
fileName: test.pdf
contractType: OFFF
ContractResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/EmptyDataResponse'
uri:
type: string
title: ContractResponseEnvelope
CustomerContact:
type: object
properties:
customerContact:
type: boolean
description: Indicates if the contact is the originators customer contact.
email1:
type: string
description: Primary e-mail address of the scheme contact customer contact.
email2:
type: string
description: Secondary e-mail address of the scheme contact customer contact.
emailNotification:
type: boolean
description: Indicates if OCX email notifications are sent to the contact.
fax:
type: string
description: Fax number of the scheme contact customer contact.
firstName:
type: string
description: First name of the scheme contact customer contact.
lastName:
type: string
description: Last name of the scheme contact customer contact.
mobile:
type: string
description: Mobile number of the scheme contact customer contact.
position:
type: string
description: Employee position of the scheme contact customer contact.
primaryContact:
type: boolean
description: Indicates if the contact is the originators primary contact.
telephone:
type: string
description: Telephone number of the scheme contact customer contact.
title:
type: string
description: Employee Title of the scheme contact customer contact.
title: CustomerContact
DebtorDetails:
type: object
required:
- email
- name
properties:
accountCountry:
type: string
minLength: 0
maxLength: 2
description: Domestic Account Country. 2 letter ISO country code
address:
$ref: '#/definitions/Address'
bic:
type: string
pattern: '[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}'
description: Account BIC
domesticAccountNumber:
type: string
minLength: 0
maxLength: 20
description: Domestic Account Number
domesticBankCode:
type: string
minLength: 0
maxLength: 10
description: Domestic Bank Code
domesticBranchCode:
type: string
minLength: 0
maxLength: 10
description: Domestic Branch Code
domesticCheckSum:
type: string
minLength: 0
maxLength: 2
description: Domestic Check Sum
email:
type: string
minLength: 0
maxLength: 254
pattern: .*@.*
description: Debtor Email Address
iban:
type: string
pattern: '[a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}'
maxLength: 34
description: Account IBAN
mobileNumber:
type: string
maxLength: 30
description: Debtor Mobile Number
name:
type: string
minLength: 0
maxLength: 70
description: Debtor Name
title: DebtorDetails
Dspm:
type: object
properties:
allowed:
type: boolean
description: Determines if the DSPM disclaimer needs to be presented to debtor.
title: Dspm
EMandateDetailsResponse:
type: object
properties:
uri:
type: string
description: URI of the retrieved resource.
authenticationDate:
type: string
format: date
description: Date the mandate was authenticated by the debtor.
createDate:
type: string
format: date
description: Creation date of mandate resource.
debtorDetails:
$ref: '#/definitions/DebtorDetails'
merchantDetails:
$ref: '#/definitions/MerchantDetails'
token:
type: string
description: Token associated to the mandate resource.
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
title: EMandateDetailsResponse
EMandateDetailsResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/EMandateDetailsResponse'
uri:
type: string
description: URI of the retrieved resource.
EmptyDataResponse:
type: object
properties:
id:
type: string
uri:
type: string
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
title: EmptyDataResponse
ErrorDetail:
type: object
properties:
code:
type: string
description:
type: string
field:
type: string
resourceUri:
type: string
title: ErrorDetail
ErrorResponse:
type: object
properties:
details:
type: array
items:
$ref: '#/definitions/ErrorDetail'
returnCode:
type: string
description:
returnDescription:
type: string
description:
title: ErrorResponse
HiddenFieldsRequest:
type: object
properties:
address:
type: boolean
description: Indicates if address fields should be hidden on UI (addressline1, addressline2, town, postcode, country).
contractReference:
type: boolean
description: Indicates if the contract reference field should be hidden on UI.
mobileNumber:
type: boolean
description: Indicates if the mobile number field should be hidden on UI.
title: HiddenFieldsRequest
HiddenFieldsResponse:
type: object
properties:
address:
type: boolean
description: Indicates if address fields should be hidden on UI (addressline1, addressline2, town, postcode, country).
contractReference:
type: boolean
description: Indicates if the contract reference field should be hidden on UI.
mobileNumber:
type: boolean
description: Indicates if the mobile number field should be hidden on UI.
title: HiddenFieldsResponse
InitGetResponse:
type: object
properties:
uri:
type: string
description: URI of requested resource.
views:
type: array
items:
$ref: '#/definitions/Link'
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
title: InitGetResponse
InitGetResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/InitGetResponse'
uri:
type: string
description: Uri of requested resource.
title: InitGetResponseEnvelope
example:
uri: /conversations/conversations/init
data:
uri: /conversations/conversations/init
views:
- href: https://api.nuapay.com/conversations/conversations/sign
rel: Sign
templated: null
- href: https://api.nuapay.com/conversations/conversations/contract
rel: Contract
templated: null
links: []
Link:
type: object
properties:
href:
type: string
xml:
name: href
attribute: true
wrapped: false
description: Identifier of next available view.
rel:
type: string
xml:
name: rel
attribute: true
wrapped: false
description: Uri of next available view.
templated:
type: boolean
description: To be defined.
title: Link
xml:
name: link
namespace: http://www.w3.org/2005/Atom
attribute: false
wrapped: false
MandateInfo:
type: object
properties:
encodedMandateId:
type: string
description: Encoded ID of mandate resource.
encodedSchemeId:
type: string
description: Encoded ID of scheme resource.
mandateId:
type: string
description: ID of mandate resource.
signed:
type: boolean
description: Indicates if the mandate has been signed and activated (true) or not (false).
title: MandateInfo
MerchantDetails:
type: object
required:
- creditorSchemeId
- iban
properties:
address:
$ref: '#/definitions/Address'
contractId:
type: string
minLength: 10
maxLength: 10
description: Merchant's contract Id.
contractReference:
type: string
minLength: 0
maxLength: 35
pattern: ^[0-9a-zA-Z\-\s]*$
description: Contract reference.
creditorSchemeId:
type: string
minLength: 0
maxLength: 35
description: Merchant's creditor scheme id.
domain:
type: string
minLength: 0
maxLength: 255
description: Merchant's domain.
iban:
type: string
pattern: '[a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}'
description: Merchant's IBAN
mandateId:
type: string
minLength: 0
maxLength: 35
description: Mandate UMR.
mandateType:
type: string
minLength: 0
maxLength: 4
enum:
- OOFF
- RCUR
description: Mandate type.
name:
type: string
minLength: 0
maxLength: 70
description: Merchant name.
schemeType:
type: string
minLength: 0
maxLength: 4
enum:
- CORE
- B2B
- COR1
- BACS
description: Scheme type of the electronic mandate.
title: MerchantDetails
PrepareConversationPostResponse:
type: object
properties:
uri:
type: string
description: URI of requested resource.
token:
type: string
description: Token representing conversation, should be used in following calls within the Token header.
views:
type: array
items:
$ref: '#/definitions/Link'
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
title: PrepareConversationPostResponse
PrepareConversationPostResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/PrepareConversationPostResponse'
uri:
type: string
description: URI of created resource.
title: PrepareConversationPostResponseEnvelope
example:
uri: /conversations/prepare/eAaFsksEPJNVrNIgQw-_7vRogVLZcOOgertmst8Eykbs3UwrdUsZUfMf6KFZ_wZhZfTUUZb1B70MIaI_gr-vLunA9CwpiO1aXsxYmrQ-X09sscSl1O1XEHGW8BU0avxxUf4Irr7DrXy2JkzMHIwAT-HsJjhFoU0WFqgUutkzyWTw9g
data:
uri: /conversations/prepare/eAaFsksEPJNVrNIgQw-_7vRogVLZcOOgertmst8Eykbs3UwrdUsZUfMf6KFZ_wZhZfTUUZb1B70MIaI_gr-vLunA9CwpiO1aXsxYmrQ-X09sscSl1O1XEHGW8BU0avxxUf4Irr7DrXy2JkzMHIwAT-HsJjhFoU0WFqgUutkzyWTw9g
token: 32b0fd59-b196-4501-bccb-56481dde69c6
views:
- href: https://api.nuapay.com/conversations/conversations/verify
rel: Verify
templated: null
links: []
PrepareMandateRequest:
type: object
required:
- merchantDetails
properties:
debtorDetails:
$ref: '#/definitions/DebtorDetails'
merchantDetails:
$ref: '#/definitions/MerchantDetails'
title: PrepareMandateRequest
example:
merchantDetails:
creditorSchemeId: BE31ZZZ12345
schemeType: CORE
mandateId: 1234567899
mandateType: OOFF
contractReference: Contract reference
contractId: 6p2lzp8amv
iban: GB47SELN00999912345678
domain: http://domain.com
debtorDetails:
name: Debtor Name
mobileNumber: 35312312312
email: debtor@email.com
iban: GB94SELN00999976543215
bic: SELNGB21
address:
line1: Address Line 1
line2: Address Line 2
town: Town
postCode: 123123
country: IE
mandateSignedEmail:
type: string
description: An e-mail address for E-mail notification to you (the merchant) after the payer signs an E-Mandate.
successUrl:
type: string
description: URL which will be used when sending http redirect action after process succeeds.
thirdPartySigning:
type: string
enum:
- UNCERTIFIED
- MORPHO
description: Determines what certification method has been configured for this debtor.
uri:
type: string
description: Uri of requested resource.
whiteLabelled:
type: boolean
description: UI white labeled.
PrepareMandateResponse:
type: object
properties:
uri:
type: string
description: URI of created resource.
token:
type: string
description: Token representing the conversation, used in other emandate calls that require a Token header.
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
title: PrepareMandateResponse
PrepareMandateResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/PrepareMandateResponse'
uri:
type: string
description: URI of created resource.
title: PrepareMandateResponseEnvelope
example:
data:
id: null
uri: /emandates/32b0fd59-b196-4501-bccb-56481dde69c6
token: 32b0fd59-b196-4501-bccb-56481dde69c6
links: []
uri: /emandates/32b0fd59-b196-4501-bccb-56481dde69c6
ResendGetResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/EmptyDataResponse'
uri:
type: string
description: Uri of requested resource.
title: ResendGetResponseEnvelope
example:
uri: /conversations/resend
data:
uri: /conversations/resend
links: []
ResendPostResponse:
type: object
properties:
uri:
type: string
description: URI of created resource.
views:
type: array
items:
$ref: '#/definitions/Link'
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
title: ResendPostResponse
ResendPostResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/ResendPostResponse'
uri:
type: string
description: URI of created resource.
title: ResendPostResponseEnvelope
example:
uri: /conversations/conversations/resend
data:
uri: /conversations/conversations/resend
views:
- href: https://api.nuapay.com/conversations/conversations/confirm
rel: Confirm
templated: null
- href: https://api.nuapay.com/conversations/conversations/resend
rel: Resend
templated: null
links: []
RestResponseLink:
type: object
properties:
id:
type: string
description: ID of the linked resource.
resourceType:
type: string
description: The type of the linked resource.
uri:
type: string
description: URI of the linked resource.
title: RestResponseLink
SettingsGetResponse:
type: object
properties:
authorization:
type: string
enum:
- CHECK_BOX
- SMS_PASSWORD
- EMAIL_PASSWORD
description: Authorization type.
branding:
$ref: '#/definitions/Branding'
customerContact:
$ref: '#/definitions/CustomerContact'
debtorInputAllowed:
type: boolean
description: Indicates if debtor input will be allowed during signing.
displayExtendedData:
type: boolean
description: Indicates if extended form input will be used for signing.
dspm:
$ref: '#/definitions/Dspm'
encodedSchemeId:
type: string
description: Encoded Creditor Scheme Id is always populated.
failureUrl:
type: string
description: URL which will be used when sending http redirect action if signing process fails.
hiddenFields:
$ref: '#/definitions/HiddenFieldsResponse'
merchantDomain:
type: string
description: Domain used by the merchant.
successUrl:
type: string
description: URL which will be used when sending http redirect action if signing process succeeds.
uri:
type: string
description: Uri of requested resource
views:
type: array
items:
$ref: '#/definitions/Link'
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
title: SettingsGetResponse
SettingsGetResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/SettingsGetResponse'
uri:
type: string
description: Uri of requested resource.
title: SettingsGetResponseEnvelope
example:
uri: /conversations/settings
data:
uri: /conversations/settings
debtorInputAllowed: true
displayExtendedData: true
hiddenFields:
address: false
mobileNumber: false
contractReference: false
authorization: SMS_PASSWORD
successUrl: https://success.com
failureUrl: https://failure.com
branding:
whiteLabelled: false
logo: https://www.nuapay.com/wp-content/themes/images/nuapay.png
primaryColour: '#FF00FF'
secondaryColour: '#00FF00'
borderColour: '#FFCCFF'
encodedSchemeId: null
merchantDomain: http://domain.com
dspm:
allowed: true
customerContact:
title: null
firstName: null
lastName: null
position: null
telephone: null
mobile: null
fax: null
email1: null
email2: null
primaryContact: false
emailNotification: false
customerContact: false
views:
- href: https://api.nuapay.com/conversations/conversations/sign
rel: Sign
templated: null
- href: https://api.nuapay.com/conversations/conversations/contract
rel: Contract
templated: null
links: []
SignMandateGetResponse:
type: object
properties:
debtorDetails:
$ref: '#/definitions/DebtorDetails'
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
merchantDetails:
$ref: '#/definitions/MerchantDetails'
uri:
type: string
description: Uri of requested resource.
title: SignMandateGetResponse
SignMandateGetResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/SignMandateGetResponse'
uri:
type: string
description: Uri of requested resource.
title: SignMandateGetResponseEnvelope
example:
uri: /conversations/conversations/sign
data:
uri: /conversations/conversations/sign
debtorDetails:
name: Debtor Name
mobileNumber: 35312312312
email: debtor@email.com
iban: GB94SELN00999976543215
domesticBranchCode: null
domesticAccountNumber: null
domesticBankCode: null
domesticCheckSum: null
accountCountry: null
address:
line1: Address Line 1
line2: Address Line 2
town: Town
postCode: 123123
country: IE
merchantDetails:
name: Creditor Name
address:
line1: Address Line 1
line2: Address Line 2
town: Town
postCode: 123123
country: IE
creditorSchemeId: BE31ZZZ12345
schemeType: CORE
mandateId: 1234567899
mandateType: OOFF
contractReference: Contract reference
contractId: null
links: []
SignMandatePostRequest:
type: object
required:
- debtorDetails
properties:
accepted:
type: boolean
description: Declaration of mandate being acceptance.
contractReference:
type: string
minLength: 0
maxLength: 35
pattern: ^[0-9a-zA-Z\-\s]*$
description: Contract reference.
debtorDetails:
$ref: '#/definitions/DebtorDetails'
title: SignMandatePostRequest
example:
debtorDetails:
name: Debtor Name
mobileNumber: 35312312312
email: debtor@email.com
iban: GB94SELN00999976543215
address:
line1: Address Line 1
line2: Address Line 2
town: Town
postCode: 123123
country: IE
contractReference: Contract reference
accepted: true
SignMandatePostResponse:
type: object
properties:
id:
type: string
mandateInfo:
$ref: '#/definitions/MandateInfo'
uri:
type: string
description: Uri of requested resource.
views:
type: array
items:
$ref: '#/definitions/Link'
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
title: SignMandatePostResponse
SignMandatePostResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/SignMandatePostResponse'
uri:
type: string
description: Uri of requested resource.
title: SignMandatePostResponseEnvelope
example:
uri: /conversations/conversations/sign
data:
uri: /conversations/conversations/sign
mandateInfo:
encodedMandateId: 8ow24y2pdx
encodedSchemeId: 8ow24y2pdx
mandateId: 1234567899
signed: true
views:
- href: https://api.nuapay.com/conversations/conversations/document
rel: Document
templated: null
links: []
VerifyGetResponse:
type: object
properties:
debtorEmail:
type: string
description: Debtor e-mail.
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
merchantDetails:
$ref: '#/definitions/MerchantDetails'
uri:
type: string
description: Uri of requested resource.
title: VerifyGetResponse
VerifyGetResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/VerifyGetResponse'
uri:
type: string
description: Uri of requested resource.
title: VerifyGetResponseEnvelope
example:
uri: /conversations/conversations/verify
data:
uri: /conversations/conversations/verify
debtorEmail: debtor@email.com
merchantDetails:
name: Creditor Name
address:
line1: Address Line 1
line2: Address Line 2
town: Town
postCode: 123123
country: IE
creditorSchemeId: BE31ZZZ12345
schemeType: CORE
mandateId: 1234567899
mandateType: OOFF
contractReference: Contract reference
contractId: 50005
links: []
VerifyPostRequest:
type: object
required:
- code
properties:
code:
type: string
maxLength: 4
description: Last four digits of the debtor IBAN.
title: VerifyPostRequest
example:
code: 3215
VerifyPostResponse:
type: object
properties:
mandateInfo:
$ref: '#/definitions/MandateInfo'
uri:
type: string
description: Uri of requested resource.
views:
type: array
items:
$ref: '#/definitions/Link'
links:
type: array
items:
$ref: '#/definitions/RestResponseLink'
title: VerifyPostResponse
VerifyPostResponseEnvelope:
type: object
properties:
data:
$ref: '#/definitions/VerifyPostResponse'
uri:
type: string
description: Uri of requested resource.
title: VerifyPostResponseEnvelope
example:
uri: /conversations/conversations/verify
data:
uri: /conversations/conversations/verify
mandateInfo:
encodedMandateId: 8ow24y2pdx
encodedSchemeId: 8ow24y2pdx
mandateId: 1234567899
signed: false
views:
- href: https://api.nuapay.com/conversations/conversations/sign
rel: Sign
templated: null
- href: https://api.nuapay.com/conversations/conversations/contract
rel: Contract
templated: null
links: []
RestResponseEnvelopeInnerOfVoid:
type: object
properties:
links:
type: array
items:
$ref: '#/definitions/EmptyDataResponse'
uri:
type: string
description: Uri of requested resource.
You can’t perform that action at this time.