RVU API Integration Specification

Version 1.0.0

Introduction

This API Integration Specification is intended for providers and partners looking to build an integrated API journey with money.co.uk. It outlines the endpoints, request and response formats, and authentication mechanisms required to integrate with our platform. By following this guide, partners can implement secure and reliable connections for us to submit applications and retrieve decisions seamlessly.

1. Authentication

POST /v1/auth/token

Obtain a Bearer token for subsequent calls.

Details

Headers:

Response (200 OK):


{
"access_token":"eyr56278373bkfe2b3j2b3",
"expires_at":"2025-05-05T16:42:15.171022Z",
"token_type":"bearer"
}
  

2. Submit Application

POST /v1/application

Submit a new application.

Details

Headers:

Request Body (JSON Schema):

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Application",
  "type": "object",
  "properties": {
    "companyRegistrationNumber": {
      "type": "string",
      "description": "Company registration number."
    },
    "registeredBusinessAddress": {
      "$ref": "#/definitions/Address",
      "description": "Registered address of the business."
    },
    "nationality": {
      "type": "string",
      "description": "Nationality of the director."
    },
    "title": {
      "type": "string",
      "enum": [
        "Mr",
        "Mrs",
        "Miss",
        "Ms",
        "Dr"
      ],
      "description": "Director’s title."
    },
    "firstName": {
      "type": "string",
      "description": "Director’s first name."
    },
    "lastName": {
      "type": "string",
      "description": "Director’s last name."
    },
    "dateOfBirth": {
      "type": "string",
      "description": "Director's date of birth in the format YYYY-MM-DD."
    },
    "emailAddress": {
      "type": "string",
      "format": "email",
      "description": "Director’s email address."
    },
    "mobileNumber": {
      "type": "string",
      "description": "Director’s mobile phone number."
    },
    "businessName": {
      "type": "string",
      "description": "Name of the business."
    },
    "turnover": {
      "type": "number",
      "description": "Annual turnover of the business."
    },
    "netProfit": {
      "type": "number",
      "description": "Net profit of the business."
    },
    "homeAddress": {
      "$ref": "#/definitions/Address",
      "description": "Home address of the Director."
    },
    "productsInterestedIn": {
      "type": "array",
      "description": "Products the applicant is interested in.",
      "items": {
        "type": "string",
        "enum": [
          "corporate_cards",
          "employee_reimbursements",
          "accounts_payable",
          "dont_know"
        ]
      },
      "minItems": 1,
      "uniqueItems": true
    },
    "borrowingAmount": {
      "type": "number",
      "description": "Amount the applicant wishes to borrow."
    },
    "numberOfEmployees": {
      "type": "object",
      "properties": {
        "from": {
          "type": "number"
        },
        "to": {
          "type": "number"
        }
      },
      "description": "Number of employees"
    },
    "monthlyCardSpend": {
      "type": "object",
      "properties": {
        "from": {
          "type": "number"
        },
        "to": {
          "type": "number"
        }
      },
      "description": "Estimated monthly card spend."
    },
    "numberOfInvoices": {
      "type": "object",
      "properties": {
        "from": {
          "type": "number"
        },
        "to": {
          "type": "number"
        }
      },
      "description": "Estimated number of invoices per month."
    },
    "cardsNeed": {
      "enum": [
        "fast_issuing",
        "spend_control",
        "finance_processes_automation"
      ]
    },
    "isCreditRequired": {
      "enum": [
        "not_important",
        "nice_to_have",
        "essential"
      ]
    },
    "funnelIntent": {
      "enum": [
        "self_serve",
        "intro"
      ]
    },
    "clickRef": {
      "type": "string",
      "description": "Tracking reference for this application used for sales data etc."
    }
  },
  "required": [
    "registeredBusinessAddress",
    "nationality",
    "title",
    "firstName",
    "lastName",
    "dateOfBirth",
    "companyRegistrationNumber",
    "emailAddress",
    "mobileNumber",
    "businessName",
    "turnover",
    "netProfit",
    "homeAddress",
    "numberOfEmployees",
    "monthlyCardSpend",
    "clickRef"
  ],
  "allOf": [
    {
      "if": {
        "properties": {
          "productsInterestedIn": {
            "const": "accounts_payable"
          }
        }
      },
      "then": {
        "required": [
          "numberOfInvoices"
        ]
      }
    }
  ],
  "definitions": {
    "Address": {
      "type": "object",
      "properties": {
        "summaryline": {
          "type": "string",
          "description": "Summary line for the address (optional)."
        },
        "organisation": {
          "type": "string",
          "description": "Organisation name (optional)."
        },
        "number": {
          "type": "string",
          "description": "Building number (optional)."
        },
        "buildingname": {
          "type": "string",
          "description": "Name of the building (optional)."
        },
        "street": {
          "type": "string",
          "description": "Street name (optional)."
        },
        "posttown": {
          "type": "string",
          "description": "Post town or city."
        },
        "postcode": {
          "type": "string",
          "pattern": "^[a-zA-Z][a-zA-Z]?[0-9]([a-zA-Z]|[0-9])? ?[0-9][a-zA-Z]{2}$",
          "description": "Postal code of the address."
        },
        "udprn": {
          "type": "string",
          "description": "Unique Delivery Point Reference Number (optional)."
        },
        "uprn": {
          "type": "string",
          "description": "Unique Property Reference Number (optional)."
        },
        "country": {
          "type": "string",
          "description": "Country of the address."
        }
      },
      "required": [
        "posttown",
        "postcode",
        "country"
      ],
      "additionalProperties": false,
      "description": "Structure for an address."
    }
  },
  "additionalProperties": false
}

Response (200 OK):


{
"applicationId":"12345"
}
  

Common Errors:

3. Fetch Application Decision

GET /v1/application/{applicationId}

Poll for a deferred application’s outcome.

Details

Headers:

Path Parameters:

Response (200 OK):


{
"applicationId":"string",
"status":"pending" | "completed" | "approved" | rejected",
"continueUrl":"https://…" // url to continue on provider side
}
  

Errors: