Moneygate developer documentation
PSD2 B2B API Specification
The Moneygate PSD2 B2B API is the external REST interface for integrations that need account, client, and transaction information through authenticated HTTPS requests.
Integration guide
This guide helps developers connect to the Moneygate PSD2 B2B API. It includes the environment URLs, authentication flow, available operations, downloadable integration files, and links to the live Swagger reference.
Getting started
What Moneygate issues
Use the shared UAT demo credentials below to start testing. Production credentials are issued separately after the UAT integration has been tested successfully.
UAT
- API base URL
-
https://b2b-api-uat.moneygate.com - Token URL
-
https://demo.auth.moneygate.com/connect/token - Client ID
-
b2b-psd2-uat-resourceowner - Username
-
860871 - Password
-
Password123!
Production
- API base URL
-
https://b2b-api.moneygate.com - Token URL
-
https://auth2.moneygate.com/connect/token - Credentials
- Contact Moneygate after successful UAT testing.
Call sequence
- Use the UAT demo client ID, username, and password shown above.
- Request an access token from the token endpoint.
- Send the token on each API request as a bearer token.
- Use Swagger or the Postman collection to test the available operations.
Authentication
The API uses JWT bearer authentication. First request an access token from the identity provider, then include that token on every API request.
Token request
Send a form-urlencoded POST request to the token endpoint for your environment.
client_id={{client_id}}
grant_type=password
username={{username}}
password={{password}}
Bearer header
Use the returned access token on every request to the Moneygate B2B API.
Authorization: Bearer {{access_token}}
API flows
About these flows
Your system is the integration calling the API. Diagrams show the typical order of calls. Exact paths, parameters, request bodies, and response fields are available in the Swagger UI.
Most integrations follow the same pattern: obtain an access token, send authenticated HTTPS requests to the Moneygate B2B API, then process JSON responses shaped by the published contract.
List and search calls can include paging query parameters such as
PageNumber and PageSize. Paging starts at
PageNumber=0.
Before each call: token and request
Every operation below assumes the bearer token is valid.
Typical call: list clients and load accounts
Many integrations first list the clients available to the authenticated user, then load accounts for the selected client.
Typical call: search and open a transaction
Use the search endpoint to retrieve matching transactions, then open a specific transaction when the user needs its full details.
Published resource groups
Swagger groups the available operations roughly as follows:
- Clients - list client summaries and load accounts for a client.
- Accounts - access account-scoped transaction details.
- Transactions - search transactions using request filters and pagination.
- Authentication - obtain and use a JWT bearer access token.
API reference
The live Swagger/OpenAPI document is the contract for operations, schemas, response codes, and model fields.
/api/v1/swagger.json.
Swagger UI
Interactive endpoint browser and try-out surface when enabled.
Published operations
| Method | Path | Purpose |
|---|---|---|
| GET | /api/Clients/summary?PageNumber=0&PageSize={pageSize} |
Get the client summary information available to the authenticated user. |
| GET | /api/Clients/{clientId}/accounts?PageNumber=0&PageSize={pageSize} |
Get accounts for a particular client. |
| POST | /api/Transactions/search?PageNumber=0&PageSize={pageSize} |
Retrieve transactions using request body filters and pagination parameters. |
| GET | /api/Accounts/{accountNumber}/Transactions/{referenceNumber} |
Get the details of a particular transaction. |
Error handling
Errors use standard HTTP status codes and problem details where applicable.
| Status | Meaning | Integrator action |
|---|---|---|
400 |
Invalid request or validation failure. | Check required fields, route values, query parameters, and JSON body. |
401 |
Unauthorized or missing/expired token. | Request a new token and retry only when safe. |
403 |
Token accepted, but operation is not permitted. | Confirm user role, client access, and configured API scope with Moneygate. |
404 |
Resource not found. | Verify identifiers such as account number, client ID, and reference number. |
500 |
Internal server error. | Retry later or contact Moneygate support with request details. |
Security
- Use HTTPS for every token and API request.
- Store credentials in a vault or secure configuration store.
- Never embed credentials in source control, mobile apps, or public documentation.
- Keep machine clocks reasonably aligned with UTC to avoid token expiry issues.
- Log request identifiers and timestamps, but do not log access tokens or passwords.
Downloads
Use these files to test and share the current integration package.
Support
If an integration cannot authenticate or receives unexpected validation responses, contact support at support@moneygate.com and include a short description of the case.