docs-nextgenpsd2.api.memo.bank Open in urlscan Pro
52.212.52.84  Public Scan

Submitted URL: http://docs-nextgenpsd2.api.memo.bank/
Effective URL: https://docs-nextgenpsd2.api.memo.bank/
Submission: On December 22 via api from US — Scanned from US

Form analysis 1 forms found in the DOM

POST https://docs-nextgenpsd2.api.memo.bank/search.json

<form class="simple_form doc-search__form" data-action="ajax:success->doc-search#onPostSuccess ajax:error->doc-search#onPostError" data-doc-search-target="form" action="https://docs-nextgenpsd2.api.memo.bank/search.json" accept-charset="UTF-8"
  data-remote="true" method="post">
  <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
    <path d="M13 13L10 10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
    <path d="M6.14286 11.2857C8.98318 11.2857 11.2857 8.98318 11.2857 6.14286C11.2857 3.30254 8.98318 1 6.14286 1C3.30254 1 1 3.30254 1 6.14286C1 8.98318 3.30254 11.2857 6.14286 11.2857Z" stroke="currentColor" stroke-width="1.5"
      stroke-linecap="round" stroke-linejoin="round"></path>
  </svg>
  <input label="false" autocomplete="off" type="hidden" name="uid" id="uid" value="0.5c725605e4d7d">
  <input label="false" autocomplete="off" data-doc-search-target="input" data-action="input->doc-search#submitOnType" class="string required" required="required" aria-required="true" placeholder="Search" type="text" name="query" id="query">
  <button type="button" class="button esc-button" data-action="click->modal#hide" data-modal-force-param="true">ESC</button>
</form>

Text Content

Show Menu
Search… Ctrl+K
ESC

Example searches: “transaction”, “CreateOrder”, “/v2/locations”, “inventory”,
“delete customer”


Toggle dark mode

--------------------------------------------------------------------------------

 * API Changelog

--------------------------------------------------------------------------------

Download source
 * JSON OpenAPI specification
 * YAML OpenAPI specification


TOPICS

 * Introduction
 * Authentication


ENDPOINTS

 * AIS
   * GET
     Read account details
   * GET
     Read account list
   * GET
     Read balance
   * GET
     Read transaction details
   * GET
     Read transaction list of an account

Powered by Bump.sh
Dismiss highlight


MEMO BANK NEXTGENPSD2 API
1.0


INTRODUCTION

Memo Bank NextGenPSD2 API allows Third Party Providers to access account
information on behalf of customers.

The API follows BerlinGroup NextGenPSD2 Implementation Guidelines as of version
1.3.11.
This document describe our implementation choices and where we have drifted away
from the guidelines.

All non-absolute paths described in this document are relatives to the base URL
of the server (https://api.memo.bank/nextgenpsd2).


ONBOARDING

For TPPs to be able to make a request on the API, they must follow the
onboarding process. For that, it is required for them to provide the following
elements :

 * a logo
 * a redirect URI for OAuth2 authentication
 * a valid QSealC certificate

In exchange of what they will receive :

 * a client_id and a client_secret to be used with OAuth2 authentication
 * a username to be used with HTTP Signature authentication


AUTHENTICATION

OAUTH2

We use OAuth2 as a pre-step to authenticate the PSU.

The access_token has a TTL of 2 hours and the refresh_token has a TTL of 2
weeks.

The TPP should refresh the token before expiration in order to reuse the same
consent for the next requests.

HTTP SIGNATURE

Requests must be signed by TPPs using the private key associated to the
certificate provided during the onboarding process.

Here is an exhaustive list of headers that must be signed :

 * @request-target (mandatory)
 * authorization (mandatory)
 * date (mandatory)
 * digest (only if the request has a body)
 * host (mandatory)
 * psu-corporate-id (only if included in the request)
 * psu-id (only if included in the request)
 * tpp-redirect-uri (only if included in the request)
 * x-request-id (only if included in the request)

The special header @request-target should be used in place of (request-target)
described in draft-cavage-http-signatures-12.

In the Signature header, a username field must be provided instead of a keyId
field. This username is obtained during the onboarding process.


CONSENT MANAGEMENT

Consent is given during the OAuth2 pre-step authentication and linked to an
access_token/refresh_token pair.

Every consent gives access to its accounts balances and transactions history.
They also have an unlimited usage frequency.

/consents endpoints are not implemented yet.


RESPONSE FORMATS

SUCCESS CASES

The API only support application/json content type.

ERROR CASES

In case of processing error, the API will use NextGenPSD2 specific solution to
give additional error information in the response.

Some errors won't follow this format if they are sent by a proxy between the
client and the application. This is the case with most authentication errors as
of now.

There is no support for the application/problem+json content type from RFC7807.

This is the documentation for version 1.0 of the API. Last update on Aug 3,
2022.

Base URL

https://api.memo.bank/nextgenpsd2

--------------------------------------------------------------------------------


AUTHENTICATION


O AUTH2 (OAUTH2)

Retrieve an Access Token with the Oauth flows described below before accessing
the API. Once you have an access token, send it in the Authorization http header
to authenticate with the API.



Flow type Authorization URL Token URL Refresh URL scopes authorizationCode
https://client.memo.bank/authorize /oauth2/token /oauth2/token
 * AIS: Account Information Service.
 * PIS: Payment Initiation Service.
 * PIIS: Confirmation of Funds Service.



--------------------------------------------------------------------------------


AIS

Account Information Service.


READ ACCOUNT DETAILS

GET /v1/accounts/{accountId}

PATH PARAMETERS

 * accountId string(uuid) Required

QUERY PARAMETERS

 * withBalance boolean

RESPONSES

 * • default object
   
   default response
   
    * account object Required
       * currency string Required
       * resourceId string
       * iban string
       * bban string
       * name string
       * displayName string
       * product string
       * cashAccountType string
       * status string
         
         Values are enabled, deleted, or blocked.
      
       * bic string
       * usage string
         
         Values are PRIV or ORGA.
      
       * balances array[object]
          * balanceAmount object Required
             * currency string Required
             * amount string Required
         
          * balanceType string Required
            
            Values are closingBooked, expected, openingBooked, interimAvailable,
            interimBooked, forwardAvailable, or nonInvoiced.
         
          * creditLimitIncluded boolean
          * referenceDate string(date)
      
       * _links object
          * balances object
             * href string
         
          * transactions object
             * href string
      
       * ownerName string

GET /v1/accounts/{accountId}

curl \
 -X GET https://api.memo.bank/nextgenpsd2/v1/accounts/{accountId} \
 -H "Authorization: Bearer $ACCESS_TOKEN"

Response example (default)

{
  "account": {
    "currency": "string",
    "resourceId": "string",
    "iban": "string",
    "bban": "string",
    "name": "string",
    "displayName": "string",
    "product": "string",
    "cashAccountType": "string",
    "status": "enabled",
    "bic": "string",
    "usage": "PRIV",
    "balances": [
      {
        "balanceAmount": {
          "currency": "string",
          "amount": "string"
        },
        "balanceType": "closingBooked",
        "creditLimitIncluded": true,
        "referenceDate": "2022-05-04"
      }
    ],
    "_links": {
      "balances": {
        "href": "string"
      },
      "transactions": {
        "href": "string"
      }
    },
    "ownerName": "string"
  }
}


READ ACCOUNT LIST

GET /v1/accounts

QUERY PARAMETERS

 * withBalance boolean

RESPONSES

 * • default object
   
   default response
   
    * accounts array[object] Required
       * currency string Required
       * resourceId string
       * iban string
       * bban string
       * name string
       * displayName string
       * product string
       * cashAccountType string
       * status string
         
         Values are enabled, deleted, or blocked.
      
       * bic string
       * usage string
         
         Values are PRIV or ORGA.
      
       * balances array[object]
          * balanceAmount object Required
             * currency string Required
             * amount string Required
         
          * balanceType string Required
            
            Values are closingBooked, expected, openingBooked, interimAvailable,
            interimBooked, forwardAvailable, or nonInvoiced.
         
          * creditLimitIncluded boolean
          * referenceDate string(date)
      
       * _links object
          * balances object
             * href string
         
          * transactions object
             * href string
      
       * ownerName string

GET /v1/accounts

curl \
 -X GET https://api.memo.bank/nextgenpsd2/v1/accounts \
 -H "Authorization: Bearer $ACCESS_TOKEN"

Response example (default)

{
  "accounts": [
    {
      "currency": "string",
      "resourceId": "string",
      "iban": "string",
      "bban": "string",
      "name": "string",
      "displayName": "string",
      "product": "string",
      "cashAccountType": "string",
      "status": "enabled",
      "bic": "string",
      "usage": "PRIV",
      "balances": [
        {
          "balanceAmount": {
            "currency": "string",
            "amount": "string"
          },
          "balanceType": "closingBooked",
          "creditLimitIncluded": true,
          "referenceDate": "2022-05-04"
        }
      ],
      "_links": {
        "balances": {
          "href": "string"
        },
        "transactions": {
          "href": "string"
        }
      },
      "ownerName": "string"
    }
  ]
}


READ BALANCE

GET /v1/accounts/{accountId}/balances

PATH PARAMETERS

 * accountId string(uuid) Required

RESPONSES

 * • default object
   
   default response
   
    * account object
       * iban string
       * bban string
       * currency string
       * cashAccountType string
   
    * balances array[object] Required
       * balanceAmount object Required
          * currency string Required
          * amount string Required
      
       * balanceType string Required
         
         Values are closingBooked, expected, openingBooked, interimAvailable,
         interimBooked, forwardAvailable, or nonInvoiced.
      
       * creditLimitIncluded boolean
       * referenceDate string(date)

GET /v1/accounts/{accountId}/balances

curl \
 -X GET https://api.memo.bank/nextgenpsd2/v1/accounts/{accountId}/balances \
 -H "Authorization: Bearer $ACCESS_TOKEN"

Response example (default)

{
  "account": {
    "iban": "string",
    "bban": "string",
    "currency": "string",
    "cashAccountType": "string"
  },
  "balances": [
    {
      "balanceAmount": {
        "currency": "string",
        "amount": "string"
      },
      "balanceType": "closingBooked",
      "creditLimitIncluded": true,
      "referenceDate": "2022-05-04"
    }
  ]
}


READ TRANSACTION DETAILS

GET /v1/accounts/{accountId}/transactions/{transactionId}

PATH PARAMETERS

 * accountId string(uuid) Required
 * transactionId string(uuid) Required

RESPONSES

 * • default object
   
   default response
   
    * transactionsDetails object Required
       * transactionAmount object Required
          * currency string Required
          * amount string Required
      
       * transactionId string
       * endToEndId string
       * batchIndicator boolean
       * batchNumberOfTransactions integer(int32)
       * mandateId string
       * bookingDate string(date)
       * valueDate string(date)
       * currencyExchange array[object]
          * sourceCurrency string Required
          * exchangeRate string Required
          * unitCurrency string Required
          * targetCurrency string Required
          * quotationDate string(date) Required
      
       * creditorName string
       * creditorAccount object
          * iban string
          * bban string
          * currency string
          * cashAccountType string
      
       * creditorAgent string
       * debtorName string
       * debtorAccount object
          * iban string
          * bban string
          * currency string
          * cashAccountType string
      
       * debtorAgent string
       * remittanceInformationUnstructured string
       * entryDetails array[object]
          * transactionAmount object Required
             * currency string Required
             * amount string Required
         
          * endToEndId string
          * mandateId string
          * currencyExchange array[object]
             * sourceCurrency string Required
             * exchangeRate string Required
             * unitCurrency string Required
             * targetCurrency string Required
             * quotationDate string(date) Required
         
          * creditorName string
          * creditorAccount object
             * iban string
             * bban string
             * currency string
             * cashAccountType string
         
          * creditorAgent string
          * debtorName string
          * debtorAccount object
             * iban string
             * bban string
             * currency string
             * cashAccountType string
         
          * debtorAgent string
          * remittanceInformationUnstructured string
      
       * _extras object
          * counterpartyAndRemittanceInformationUnstructured string
            
            Concatenates the counterparty name with the remittance information,
            to be used by consumers which only wants one field for both
            information.

GET /v1/accounts/{accountId}/transactions/{transactionId}

curl \
 -X GET https://api.memo.bank/nextgenpsd2/v1/accounts/{accountId}/transactions/{transactionId} \
 -H "Authorization: Bearer $ACCESS_TOKEN"

Response example (default)

{
  "transactionsDetails": {
    "transactionAmount": {
      "currency": "string",
      "amount": "string"
    },
    "transactionId": "string",
    "endToEndId": "string",
    "batchIndicator": true,
    "batchNumberOfTransactions": 42,
    "mandateId": "string",
    "bookingDate": "2022-05-04",
    "valueDate": "2022-05-04",
    "currencyExchange": [
      {
        "sourceCurrency": "string",
        "exchangeRate": "string",
        "unitCurrency": "string",
        "targetCurrency": "string",
        "quotationDate": "2022-05-04"
      }
    ],
    "creditorName": "string",
    "creditorAccount": {
      "iban": "string",
      "bban": "string",
      "currency": "string",
      "cashAccountType": "string"
    },
    "creditorAgent": "string",
    "debtorName": "string",
    "debtorAccount": {
      "iban": "string",
      "bban": "string",
      "currency": "string",
      "cashAccountType": "string"
    },
    "debtorAgent": "string",
    "remittanceInformationUnstructured": "string",
    "entryDetails": [
      {
        "transactionAmount": {
          "currency": "string",
          "amount": "string"
        },
        "endToEndId": "string",
        "mandateId": "string",
        "currencyExchange": [
          {
            "sourceCurrency": "string",
            "exchangeRate": "string",
            "unitCurrency": "string",
            "targetCurrency": "string",
            "quotationDate": "2022-05-04"
          }
        ],
        "creditorName": "string",
        "creditorAccount": {
          "iban": "string",
          "bban": "string",
          "currency": "string",
          "cashAccountType": "string"
        },
        "creditorAgent": "string",
        "debtorName": "string",
        "debtorAccount": {
          "iban": "string",
          "bban": "string",
          "currency": "string",
          "cashAccountType": "string"
        },
        "debtorAgent": "string",
        "remittanceInformationUnstructured": "string"
      }
    ],
    "_extras": {
      "counterpartyAndRemittanceInformationUnstructured": "string"
    }
  }
}


READ TRANSACTION LIST OF AN ACCOUNT

GET /v1/accounts/{accountId}/transactions

PATH PARAMETERS

 * accountId string(uuid) Required

QUERY PARAMETERS

 * bookingStatus string Required
   
   Supported values are : booked, pending and both.
   
   Values are information, booked, pending, both, or all.

 * dateFrom string(date)
 * dateTo string(date)
 * entryReferenceFrom string
   
   Unsupported.

 * deltaList boolean
   
   Unsupported.

 * withBalance boolean
 * orderBy string
   
   Supported values are : bookingDate, -bookingDate.
   
   Default value is bookingDate.

 * page integer(int32)
   
   Minimum value is 1. Default value is 1.

 * size integer(int32)
   
   Minimum value is 1, maximum value is 100. Default value is 50.

RESPONSES

 * • default object
   
   default response
   
    * account object
       * iban string
       * bban string
       * currency string
       * cashAccountType string
   
    * balances array[object]
       * balanceAmount object Required
          * currency string Required
          * amount string Required
      
       * balanceType string Required
         
         Values are closingBooked, expected, openingBooked, interimAvailable,
         interimBooked, forwardAvailable, or nonInvoiced.
      
       * creditLimitIncluded boolean
       * referenceDate string(date)
   
    * transactions object
       * _links object
          * account object Required
             * href string
         
          * first object
             * href string
         
          * next object
             * href string
         
          * previous object
             * href string
         
          * last object
             * href string
      
       * booked array[object]
          * transactionAmount object Required
             * currency string Required
             * amount string Required
         
          * transactionId string
          * endToEndId string
          * batchIndicator boolean
          * batchNumberOfTransactions integer(int32)
          * mandateId string
          * bookingDate string(date)
          * valueDate string(date)
          * currencyExchange array[object]
             * sourceCurrency string Required
             * exchangeRate string Required
             * unitCurrency string Required
             * targetCurrency string Required
             * quotationDate string(date) Required
         
          * creditorName string
          * creditorAccount object
             * iban string
             * bban string
             * currency string
             * cashAccountType string
         
          * creditorAgent string
          * debtorName string
          * debtorAccount object
             * iban string
             * bban string
             * currency string
             * cashAccountType string
         
          * debtorAgent string
          * remittanceInformationUnstructured string
          * entryDetails array[object]
             * transactionAmount object Required
                * currency string Required
                * amount string Required
            
             * endToEndId string
             * mandateId string
             * currencyExchange array[object]
                * sourceCurrency string Required
                * exchangeRate string Required
                * unitCurrency string Required
                * targetCurrency string Required
                * quotationDate string(date) Required
            
             * creditorName string
             * creditorAccount object
                * iban string
                * bban string
                * currency string
                * cashAccountType string
            
             * creditorAgent string
             * debtorName string
             * debtorAccount object
                * iban string
                * bban string
                * currency string
                * cashAccountType string
            
             * debtorAgent string
             * remittanceInformationUnstructured string
         
          * _extras object
             * counterpartyAndRemittanceInformationUnstructured string
               
               Concatenates the counterparty name with the remittance
               information, to be used by consumers which only wants one field
               for both information.
      
       * pending array[object]
          * transactionAmount object Required
             * currency string Required
             * amount string Required
         
          * transactionId string
          * endToEndId string
          * batchIndicator boolean
          * batchNumberOfTransactions integer(int32)
          * mandateId string
          * bookingDate string(date)
          * valueDate string(date)
          * currencyExchange array[object]
             * sourceCurrency string Required
             * exchangeRate string Required
             * unitCurrency string Required
             * targetCurrency string Required
             * quotationDate string(date) Required
         
          * creditorName string
          * creditorAccount object
             * iban string
             * bban string
             * currency string
             * cashAccountType string
         
          * creditorAgent string
          * debtorName string
          * debtorAccount object
             * iban string
             * bban string
             * currency string
             * cashAccountType string
         
          * debtorAgent string
          * remittanceInformationUnstructured string
          * entryDetails array[object]
             * transactionAmount object Required
                * currency string Required
                * amount string Required
            
             * endToEndId string
             * mandateId string
             * currencyExchange array[object]
                * sourceCurrency string Required
                * exchangeRate string Required
                * unitCurrency string Required
                * targetCurrency string Required
                * quotationDate string(date) Required
            
             * creditorName string
             * creditorAccount object
                * iban string
                * bban string
                * currency string
                * cashAccountType string
            
             * creditorAgent string
             * debtorName string
             * debtorAccount object
                * iban string
                * bban string
                * currency string
                * cashAccountType string
            
             * debtorAgent string
             * remittanceInformationUnstructured string
         
          * _extras object
             * counterpartyAndRemittanceInformationUnstructured string
               
               Concatenates the counterparty name with the remittance
               information, to be used by consumers which only wants one field
               for both information.

GET /v1/accounts/{accountId}/transactions

curl \
 -X GET https://api.memo.bank/nextgenpsd2/v1/accounts/{accountId}/transactions?bookingStatus=information \
 -H "Authorization: Bearer $ACCESS_TOKEN"

Response example (default)

{
  "account": {
    "iban": "string",
    "bban": "string",
    "currency": "string",
    "cashAccountType": "string"
  },
  "balances": [
    {
      "balanceAmount": {
        "currency": "string",
        "amount": "string"
      },
      "balanceType": "closingBooked",
      "creditLimitIncluded": true,
      "referenceDate": "2022-05-04"
    }
  ],
  "transactions": {
    "_links": {
      "account": {
        "href": "string"
      },
      "first": {
        "href": "string"
      },
      "next": {
        "href": "string"
      },
      "previous": {
        "href": "string"
      },
      "last": {
        "href": "string"
      }
    },
    "booked": [
      {
        "transactionAmount": {
          "currency": "string",
          "amount": "string"
        },
        "transactionId": "string",
        "endToEndId": "string",
        "batchIndicator": true,
        "batchNumberOfTransactions": 42,
        "mandateId": "string",
        "bookingDate": "2022-05-04",
        "valueDate": "2022-05-04",
        "currencyExchange": [
          {
            "sourceCurrency": "string",
            "exchangeRate": "string",
            "unitCurrency": "string",
            "targetCurrency": "string",
            "quotationDate": "2022-05-04"
          }
        ],
        "creditorName": "string",
        "creditorAccount": {
          "iban": "string",
          "bban": "string",
          "currency": "string",
          "cashAccountType": "string"
        },
        "creditorAgent": "string",
        "debtorName": "string",
        "debtorAccount": {
          "iban": "string",
          "bban": "string",
          "currency": "string",
          "cashAccountType": "string"
        },
        "debtorAgent": "string",
        "remittanceInformationUnstructured": "string",
        "entryDetails": [
          {
            "transactionAmount": {
              "currency": "string",
              "amount": "string"
            },
            "endToEndId": "string",
            "mandateId": "string",
            "currencyExchange": [
              {
                "sourceCurrency": "string",
                "exchangeRate": "string",
                "unitCurrency": "string",
                "targetCurrency": "string",
                "quotationDate": "2022-05-04"
              }
            ],
            "creditorName": "string",
            "creditorAccount": {
              "iban": "string",
              "bban": "string",
              "currency": "string",
              "cashAccountType": "string"
            },
            "creditorAgent": "string",
            "debtorName": "string",
            "debtorAccount": {
              "iban": "string",
              "bban": "string",
              "currency": "string",
              "cashAccountType": "string"
            },
            "debtorAgent": "string",
            "remittanceInformationUnstructured": "string"
          }
        ],
        "_extras": {
          "counterpartyAndRemittanceInformationUnstructured": "string"
        }
      }
    ],
    "pending": [
      {
        "transactionAmount": {
          "currency": "string",
          "amount": "string"
        },
        "transactionId": "string",
        "endToEndId": "string",
        "batchIndicator": true,
        "batchNumberOfTransactions": 42,
        "mandateId": "string",
        "bookingDate": "2022-05-04",
        "valueDate": "2022-05-04",
        "currencyExchange": [
          {
            "sourceCurrency": "string",
            "exchangeRate": "string",
            "unitCurrency": "string",
            "targetCurrency": "string",
            "quotationDate": "2022-05-04"
          }
        ],
        "creditorName": "string",
        "creditorAccount": {
          "iban": "string",
          "bban": "string",
          "currency": "string",
          "cashAccountType": "string"
        },
        "creditorAgent": "string",
        "debtorName": "string",
        "debtorAccount": {
          "iban": "string",
          "bban": "string",
          "currency": "string",
          "cashAccountType": "string"
        },
        "debtorAgent": "string",
        "remittanceInformationUnstructured": "string",
        "entryDetails": [
          {
            "transactionAmount": {
              "currency": "string",
              "amount": "string"
            },
            "endToEndId": "string",
            "mandateId": "string",
            "currencyExchange": [
              {
                "sourceCurrency": "string",
                "exchangeRate": "string",
                "unitCurrency": "string",
                "targetCurrency": "string",
                "quotationDate": "2022-05-04"
              }
            ],
            "creditorName": "string",
            "creditorAccount": {
              "iban": "string",
              "bban": "string",
              "currency": "string",
              "cashAccountType": "string"
            },
            "creditorAgent": "string",
            "debtorName": "string",
            "debtorAccount": {
              "iban": "string",
              "bban": "string",
              "currency": "string",
              "cashAccountType": "string"
            },
            "debtorAgent": "string",
            "remittanceInformationUnstructured": "string"
          }
        ],
        "_extras": {
          "counterpartyAndRemittanceInformationUnstructured": "string"
        }
      }
    ]
  }
}