About this guide
Welcome to the V12 Retail Finance Integration Guide. This site is designed to provide you with comprehensive details on how to integrate your website to the V12 Retail Finance Application Gateway.
The Application Gateway from V12 Retail Finance allows finance applications to be submitted, processed, approved and signed online. It offers flexible integration options to integrate as much or as little as desired with retailer's systems. Full integration eradicates the need for double keying of data, saving time and improving the customer experience. Customer information from the retailer's system is passed onto the finance application in the background resulting in a cleaner and more professional process.
Applications can be created, completed and fully managed using our administration portal and integration is entirely optional. However, this software as a service solution can integrate with websites or point of sale software as required, the only requirement being internet access. The system is designed to sit as a payment method alongside existing options such as card payments.
Recently Updated NEW
Update | Date | Section |
Removed DateFirstPayment | 02/09/2024 | Application Request Order |
Added cancel to the customer return URL | 02/09/2024 | Customer Journey Return URL |
V12 Retail Finance E-sign purchase journey
In order for customers to checkout using a V12 payment method, the website would send a new ApplicationRequest to the V12 API. A unique URL for that customer's application form is then returned as a response to your request: ApplicationStatusResponse. The customer should be re-directed to the provided URL where they can complete the application and e-Sign process.
Please Note: The customer can be 'Accepted' for finance, meaning that we are happy to offer them the loan, but if they do not then go on to sign the credit agreement, the order is simply not complete. You should not mark orders complete as a result of 'Accepted', the status to look out for that indicates a completed order is AwaitingFulfilment. The diagram below explains the changes of status that occur through the lifetime of an application, the status changes are indicated by the text on the arrows:
The corresponding enumerations of those statuses that you will find in the eApplicationStatus.
Advertising (JavaScript Calculator)
Advertising the availability of finance increases both volume of applications and approval rates whether that is through an online process, mail order or an in store purchase. V12 provide simple methods to allow accurate monthly instalments to be calculated. These can then be applied at the home page, product search page, product detail page, basket and checkout for the greatest impact making finance easier and accessible.
The finance calculator on your website enables the customer to choose a finance product/deposit amount in view of the recurring monthly payments. Here is a JavaScript example that you are welcome to take from and modify freely. This example uses the finance products of an internal test retailer but if you change the retailer ID and GUID then you will get the relevant finance products for your retailer. Further details of how to display the calculator on your website can be found in the Credit Advertising Guide (login required). To view the source code for the calculator below, please visit: https://apply.v12finance.com/javascriptgateway/jscalc/Your_Retailer_Id_Here/Your_Guid_Here and use your browser's view source function.
Features & Benefits
This part of the guide identifies what the main features and benefits of integration with V12 Retail Finance are showing how finance is vital for a smoother customer experience.
Staying updated
As an application moves through its natural lifecycle, there will be certain points where a retailer would want to know of any changes that might occur in the application process. V12 can provide these status changes proactively, as soon as they occur to allow orders to be kept in synchronisation and ensure fulfilment is efficient. Alternatively, the V12 system can be polled to get the status of an application from retailers systems.
CheckApplicationStatus
This function takes an object parameter of ApplicationStatusRequest. After validating the content it will locate the application in question and return details of its current status inside an ApplicationStatusResponse object. An optional parameter in the request object can be specified which will populate additional objects in the response which will detail order lines and basic customer contact details as entered into the V12 site by the customer.
Once an application has reached stage Declined, Cancelled or Funded (Payment Processed), please ensure that ApplicationStatusRequests are no longer called and are put to a stop. This is due to these being the final stages for an application and therefore it is not necessary to request further status updates once these are received.
Proactive status updates
To subscribe to proactive status updates, you should provide us with a URL and Retailer ID. This can be sent to SalesSupport@v12finance.com. This URL must be internet accessible and can be locked down to our calling IP addresses. The IP address is 212.100.234.100 for live running and in the event that we ever fail-over to DR the IP address is 134.213.180.80. Upon status updates occurring within the V12 environment, details of this change will be sent via a HTTP POST to the URL specified. A successful response code (HTTP 200 - OK) will indicate the message was received and understood. Any other HTTP code will be taken as an error and the request will be retried at set intervals (up to a maximum of 25 times). Please ensure that all proactive status updates return a successful response code (HTTP 200) within 10 seconds to avoid timing out and requiring unnecessary retries. To validate the authenticity of this message you may use it as a trigger to call the CheckApplicationStatus method (above) which will confirm the most recent status of the application.
The POSTed value pairs are listed below:
Proactive Status Notification | ||
ApplicationId | The V12 ApplicationId as supplied upon creation | Integer |
SalesReference | The sales reference supplied by the retailer at application creation | String |
Status | The current status of the application as an enumeration | Enumeration |
The customer journey (Return URL)
Once the customer has been re-directed to the application URL from the SubmitApplication, V12 will guide the customer through the application form. Once complete, the credit decision process will take over guiding the customer through identity checks, deposit collection (where required) and finally onto the eSign process. If an application is referred, declined, cancelled or after the application has been signed, a button can be shown to return to the web site for the customer.
This optional URL should be supplied to V12 by email: SalesSupport@v12finance.com who will configure it. This should be a customer facing informational page and should not be used for order processing purposes. For more information about order processing, please see the Staying updated section.
This URL will be appended with the following parameters to give you an indication of the status and the sales order reference, which you passed over to V12:
Customer facing back script | ||
Ref | The V12 ApplicationId as supplied on creation | Integer |
SR | The sales reference supplied by the retailer at application creation | String |
Status | An indication of a decision – Referred, Declined, Approved, AMended, Signed, Funded, Cancelled | Character |
Flag | A check digit for the above R=8, D=10, A=15, M=21, S=30, F=60, C=100 | Integer |
Auth | The V12 authorisation number for the application | String |
SSR | The second sales reference supplied by the retailer at application creation | String |
Order Tracking
V12 has the ability to automatically render a hidden iFrame at the decision pages of the finance application process, once the credit check has been completed. It is recommended that this iframe is used specifically for order tracking/finance conversion purposes (including Google Analytics) since the iframe is automatically rendered and does not rely on your customer clicking anything.
In order to use this you should supply V12 with a URL and Retailer ID to SalesSupport@v12finance.com. This URL must be internet accessible and for security purposes, the iframe will only be rendered if the URL is hosted on https.
The following parameters are appended to this URL:
Order Tracking Parameters | ||
Ref | The V12 ApplicationId as supplied back to retailer upon creation | Integer |
SR | The sales reference supplied by the retailer at time of application creation | String |
Status | An indication of a decision – Referred, Declined, Approved, AMended, Signed, Funded, Cancelled | Character |
Flag | A check digit for the above R=8, D=10, A=15, M=21, S=30, F=60, C=100 | Integer |
Auth | V12 authorisation code (may be blank) | String |
SSR | The second sales reference as supplied by the retailer at application creation. This may also be blank | String |
Handover
As part of the finance process, the sales are completed on the retailer's web site or point of sale software and the customer/sales advisor is directed to the V12 Retail Finance online application system to complete the customer details on the intuitive application form. This guides them through the information required to run a finance check and once approved through the identity checks, important information delivery (as prescribed by law) and the online signing or document production phase.
The retailer's developers will be required to make a simple ApplicationRequest to the Application Gateway interface, once the order details have been captured and saved on a web site or point of sale software. This call will allow a new application to be created, for a given finance product and tie it together with a reference number. Optionally, any information held about the customer can be passed over to save rekeying and time.
The response will contain the application URL, to which the end user or staff member should be redirected to any web browser. The intuitive and quick application process will capture all the required information, through to a decision and where appropriate, the finance contract can be electronically signed. Once this has happened, the order can be fulfilled.
There is also a function which will return the current status of an application, and another function to update V12 to request payment for an order fulfilled or to inform of a cancellation.
All functions have their own input parameter objects in place, which in turn have a standard Retailer header object element containing your authentication details.
Integrating Your Website Using API & Testing
Automatic Cancellation
Non-complete applications are cancelled after 7 days.
If an application is approved but not signed, it will be cancelled after 90 days.
If an application is signed, but request for payment has not occurred, it will be cancelled 360 days from our acceptance date.
SubmitApplication
This function takes an object parameter of ApplicationRequest. After validating the content, it will create a new application and populate any information supplied. It returns an ApplicationStatusResponse object; amongst other information will be the status of the new application, which will then be "Acknowledged" if successful and "Error" if any errors occurred. These errors will be listed in the error object and the application will not have been created. If successful, the URL in the response is a fully qualified URL of the application form to complete.
Protocol Support
In line with the requirements for security best practice and the latest security recommendations, we will be supporting TLS 1.2 and above.
Testing Your Integration
Test applications are created using the same method as real applications, but by using the credentials of a test retailer (Retailer ID & GUID) provided by your account manager. When the application form for a test application is viewed, a modal window is displayed to confirm the application is in test mode. A message also appears in red at the top of each page to confirm that the application will not be submitted for a real credit check. On test applications where a deposit is due to be collected by V12, a link is provided on the deposit page to allow you to simulate payment of the deposit without inputting payment details. The credit agreement document produced at the end of a test application bears a watermark and a fake customer name to ensure that the document is not confused for a genuine credit agreement.
In order to submit a test application for a simulated decision you must use a specific Last name on the application to specify the decision that should be simulated. The Last names 'Approve', 'Refer' and 'Decline' result in an immediate decision, while the Last names 'ReferApprove' and 'ReferDecline' can also be used to first refer the application and then either approve or decline the application after a random delay of up to one hour.
Additionally, any postal and email addresses supplied must be those of the tester or retailer. Real customer data must never be used on test applications.
When testing your integration, you can perform all requests described in the below sections of this Integration guide:
- Submit application
- Check application status
- Update application
- Finance products
- Amend financials
You are able to perform an ApplicationUpdateRequest to RequestPayment during your testing. We will emulate any test application that you request payment on moving to the 'Payment Processed' stage the next working day. This will allow you to carry out an end-to-end test of the stage flows that an application can go through.
It is mandatory to test your integration before going live, you will need to perform a check to ensure that two customers applying at the same time, are not redirected to the same application form. This issue can occur when a GET request has been implemented in the integration design process to redirect the customer after clicking the apply for finance button. The request is then cached and can cause two customers clicking at the same time, to be redirected to the same application form.
Test steps
- Two people will need to go to your website, add a product to the basket and proceed through the checkout selecting V12 as the payment option.
- Once completed, both people will need to click apply around the same time.
- Once redirected, please check that the ApplicationID in the top right corner is unique and that you both haven’t landed on the same application form.
If redirected to the same application form, you will need to fix this before going live.
Duplicate Sales References
As part of the order object, a SalesReference must be supplied. This is a string which is issued to identify the order on the retailer's systems and is used in all communications, including reconciliation of payments. There are scenarios where it is desirable to have duplicated sales references, but there can be occasions when it is desirable that they remain unique. V12 can handle this in three different ways.
Firstly, it can be an error condition, this mean that if a sales reference is duplicated, it can cause a hard error to be returned and no application will be created.
Secondly, if a duplicate application is found, and the details on it match the details in the request, then it can be resurrected and re-used. The URL will be that of the original application, this will only be the case if the details are identical, including financial and personal details. If any details are different, it will then become an error condition.
Finally, the system can be configured to always create a new application, duplicating the sales reference number, but this will never cause the error condition.
The behaviour can be chosen in the enumeration in the Order object.
Keeping V12 updated
An approved application will naturally reach one of two conclusions – it will either be fulfilled, in which case payment should be requested from us, or alternatively it could be cancelled.
V12 can take a feed from any application, web, point of sales, or sales order fulfilment software which is involved in these events. By integrating the V12 solution at that point, the retailer can keep the V12 applications in sync with their own, ensuring that the reporting is accurate and payments are made at the correct points.
UpdateApplication
This request has an object parameter of ApplicationUpdateRequest which in turn has the standard Retailer header object, the application ID and an enumeration for the update you would like to perform. Supported updates in this version are:
- Request Payment – this informs V12 that the order has been fulfilled and triggers the mechanism to release the funds to the retailer.
- Cancel – this informs V12 that the order is to be cancelled.
- Partial Refund – this informs V12 that you wish to refund part of the value of the specified finance application. A successful refund will trigger V12 to clawback funds from the retailer if applicable.
- Amend Sales Reference – this informs V12 that you want to amend the SalesReference and/or SecondSalesReference for an application.
The response will be an ApplicationStatusResponse object, showing the current status and if any errors have been generated they will be detailed within the error objects.
You should check the response to ensure the message was received and processed correctly.
AmendFinancials
This request has an object parameter of AmendFinancialsRequest, which in turn has the standard Retailer header object, the application ID and the details of the new cash price, deposit and product.
Please note, that the ability to amend the financials for an application is not enabled by default for a retailer. If you require this functionality please discuss this with your account manager. Also, the financials for an application can only be amended if the application has not been credit checked or if it has been credit checked and approved, and payment has not been requested for the application.
The response will be an AmendFinancialsResult object, showing both the original and amended status for the application, and if any errors have been generated they will be detailed within the error objects.
You should check the response to ensure the message was received and processed correctly.
Technical Details
The base server address is https://apply.v12finance.com/latest/retailerapi
This server exposes a number of functions which are explained below.
Content Types
Content types are extremely important, otherwise packets will not be interpreted or returned correctly.
XML
If you are posting XML, then the following header must be set:
Content-type: text/xml
JSON
If you are posting JSON, then the following header must be set:
Content-Type: application/json
Submit Application NEW
This creates an application within V12 and returns the status packet, in which will be the URL to redirect the customer to.
URL: https://apply.v12finance.com/latest/retailerapi/SubmitApplication
Method: POST
Posted object: ApplicationRequest
Response Object: ApplicationStatusResponse
This is the main object for a new application, containing objects to identify the retailer such as their order details, any other customer details and preferences collected to date.
This is a basic example with some customer details (customer object is entirely optional). Note that the retailer object must be populated with details in all cases. The product ID and GUID shown may not be valid in all scenarios, consult your integration spreadsheet.
Note: when calculating the deposit results in a fractional number of pennies, you will need to round up or down (dependant on the deposit used) to the nearest whole penny, before sending the ApplicationRequest to the API. This will be critical when a customer is choosing to use the minimum or maximum deposit parameter.
Examples:
Mimimum 10% deposit parameter. Loan amount £1727.83 with 10% deposit 172.783, you will need to round up the deposit to £172.79.
Maximum 50% deposit parameter. Loan amount £1727.83 with 50% deposit 863.915, you will need to round down the deposit to £863.91.
Field Name | Description | Data Type | Required |
Retailer | The retailer authentication object | Object | Required |
Order | Details of the order, finance product, values and reference | Object | Optional |
Customer | Any customer information known | Object | Optional |
ApplicationId | This is the V12 reference number and should be used if the application already exists | Integer | Optional |
ApplicationGuid | This is the V12 reference guid and should be used if the application already exists | Guid | Optional |
{
"Order":{
"CashPrice":"3000",
"Deposit":"300",
"DuplicateSalesReferenceMethod":"ShowError",
"ProductGuid":"Your product Guid here",
"ProductId":"Your product Id here",
"SalesReference":"Your sales ref goes here"
},
"Retailer":{
"AuthenticationKey":"Your key goes here",
"RetailerGuid":"Your Guid goes here",
"RetailerId":"Your Id goes here"
}
}
1000
100
ShowError
Your product Guid here
Your product Id here
Your sales ref goes here
Your key goes here
Your Guid goes here
Your Id goes here
{
"Customer":{
"EmailAddress":"test@v12finance.com",
"Title":"3",
"FirstName":"Bob",
"Addresses":[
{
"MonthsAtAddress":"35",
"FlatNumber":"",
"BuildingName":"",
"BuildingNumber":"92",
"Street":"The Street",
"Locality":"",
"TownOrCity":"Cardiff",
"County":"Cardiff",
"Postcode":"CF24 5PJ"
},
{
"MonthsAtAddress":"150",
"FlatNumber":"",
"BuildingName":"",
"BuildingNumber":"92",
"Street":"The Street",
"Locality":"",
"TownOrCity":"Cardiff",
"County":"Cardiff",
"Postcode":"CF24 5PJ"
}
],
"HomeTelephone":{
"Code":"02920",
"Number":"123456"
},
"LastName":"Test",
"MobileTelephone":{
"Code":"02920",
"Number":"123456"
}
},
"Order":{
"Lines":[
{
"Qty":"1",
"SKU":"testSKU1",
"Item":"testItemName1",
"Price":"1500.00"
},
{
"Qty":"1",
"SKU":"testSKU2",
"Item":"testItemName2",
"Price":"500.00"
}
],
"CashPrice":"2000",
"Deposit":"300",
"DuplicateSalesReferenceMethod":"ShowError",
"ProductGuid":"Your product Guid here",
"ProductId":"Your product Id here",
"SalesReference":"Your sales ref goes here",
"vLink":"false"
},
"Retailer":{
"AuthenticationKey":"Your key here",
"RetailerGuid":"Your Guid here",
"RetailerId":"Your Id here"
}
}
test@v12finance.com
Mr
John
92
0
Cardiff
CF24 5PJ
The Street
Cardiff
35
10
0
Cardiff
CF24 5PJ
The Street
Cardiff
150
02920
000000
Edwards
02920
000000
5000.00
300.00
ShowError
Your Product GUID
Your Product ID
Your sales ref goes here
Optional: A second sales reference can go here
true
- An item
5000.00
1
Product SKU
Your key goes here
Your Guid goes here
Your Id goes here
{
"ApplicationFormUrl": "https://apply.v12finance.com/responsive/Application/Form/12345678/eeb8c4cf-2c39-4db5-be03-a208a01c2de3",
"ApplicationGuid": "eeb8c4cf-2c39-4db5-be03-a208a01c2de3",
"ApplicationId": 12345678,
"AuthorisationCode": "",
"Customer": null,
"Errors": [],
"Financials": {
"CashPrice": 1000,
"Commission": 0,
"Deposit": 100,
"LoanAmount": 900,
"LoanAmountLessRefunds": 900,
"ProductId": 27,
"Refunds": [],
"SettlementDetails": [],
"Subsidy": 56.25
},
"OrderLines": [],
"SalesReference": "Your Sales Ref Goes Here",
"SecondSalesReference": "Optional: A second sales reference can go here",
"Status": 1,
"CreditPolicyTag": "SCP1"
}
https://apply.v12finance.com/responsive/Application/Form/12345678/74d49689-a1fd-4e0f-88c6-93cc8c7a8af0
74d49689-a1fd-4e0f-88c6-93cc8c7a8af0
12345678
1000.00
0
100.00
900.00
900.00
27
74.25
Your Sales Ref Goes Here
Optional: A second sales reference can go here
Acknowledged
SCP1
{
"ApplicationFormUrl": null,
"ApplicationGuid": "00000000-0000-0000-0000-000000000000",
"ApplicationId": 12345678,
"AuthorisationCode": null,
"Customer": null,
"Errors": [
{
"Code": "DUP001",
"Description": "A duplicate application was found with the same sales reference",
"Reference": ""
}
],
"Financials": {
"CashPrice": 0,
"Commission": 0,
"Deposit": 0,
"LoanAmount": 0,
"LoanAmountLessRefunds": 0,
"ProductId": 0,
"Refunds": [],
"SettlementDetails": [],
"Subsidy": 0
},
"OrderLines": [],
"SalesReference": null,
"SecondSalesReference": null,
"Status": 0,
"CreditPolicyTag": null
}
0
DUP001
A duplicate application was found with the same sales reference
0
0
0
0
0
0
0
ErrorProcessing
Retailer
This is the main authentication packet, containing retailer ID and GUID values, supplied by V12 to represent a single shop, website or sales channel. The authentication key is used as a pre-shared secret.
Field Name | Description | Data Type | Required |
RetailerID | Supplied by V12, this identifies the specific shop/web site/sales channel being used for this application. Used as a pair with RetailerGuid. | Integer | Required |
RetailerGuid | Supplied by V12, this identifies the specific shop/web site/sales channel being used for this application. Used as a pair with RetailerId. | Guid | Required |
AuthenticationKey | Supplied by V12, this is a pre-shared secret used to ensure messages have originated from a trusted source. | String(50) | Required |
UserID | If supplied by V12, populate this to indicate the user who initiated the transaction. It will be rare that this is required. | Integer | Optional |
Customer
The customer element contains all details known about the customer. Everything is optional; though populating known data simplifies the application process for the customer.
Field Name | Description | Data Type | Required |
Title | The customer's title | Enumeration | Optional |
FirstName | The customer's forename | String(256) | Optional |
LastName | The customer's surname. When testing, setting this field to either Approve, Decline, Refer, ReferApprove or ReferDecline will result in the application having the specified outcome. | String (256) | Optional |
EmailAddress | The customer's email address | String(256) | Optional |
Addresses | A collection of the customer's addresses for the last 3 years | Object List | Optional |
MobileTelephone | The customer's mobile telephone | Object | Optional |
HomeTelephone | The customer's home telephone | Object | Optional |
CustomerAddress
A container for each customer Address (below) containing extra fields required by home addresses.
Field Name | Description | Data Type | Required |
Address | An address object representing the address | Object | Optional |
AddressOrder | Used to order the collection of addresses correctly, lowest first | Integer | Optional |
MonthsAtAddress | Number of months the customer lived at this address | Integer | Optional |
Address
An address object used by Customer.Addresses as a list of addresses and Employment.Address as a single address. Please note that the postcode must be separated by a space rather than one complete string.
Field Name | Description | Data Type | Required |
FlatNumber | If applicable the flat or sub building number | String(30) | Optional |
BuildingName | If applicable the building name | String(40) | Optional |
BuildingNumber | If applicable the building number | String(30) | Optional |
Street | The street name | String(40) | Optional |
Locality | The locality or district within a town or city | String(40) | Optional |
TownOrCity | The closest town or city | String(40) | Optional |
County | The county of the address | String(40) | Optional |
Postcode | The postcode. Please note, this must be separated by a space, e.g. CF24 5PJ, not CF245PJ. | String(8) | Optional |
Country | Leave blank | Integer | Optional |
TelephoneNumber
A telephone object, used wherever a telephone number is required.
Field Name | Description | Data Type | Required |
Code | The area code of the number | String(8) | Optional |
Number | The remainder of the telpehone number | String(32) | Optional |
Order
An object representing the finance product used in the order, the values and the retailer's reference which is used in reconciliation and order communications. Product ID and Guid's are supplied by V12 to be used in this packet.
Field Name | Description | Data Type | Required |
ProductID | Supplied by V12, this is the identifier for the finance product to be used for this transaction. Used as a pair with ProductGuid | Integer | Required |
ProductGuid | Supplied by V12, this is the identifier for the finance product to be used for this transaction. Used as a pair with ProductId | Guid | Required |
SalesReference | This is the retailer's reference to the order. Will be used in all future communications to identify the order for the retailer | String(128) | Required |
SecondSalesReference | This is the retailer's optional second reference to the order. This can also be used to provide the development company name, this will identify the development company per application to support V12 when answering any queries. | String(256) | Optional |
CashPrice | The gross price of the order as if it were being paid in cash, including any applicable VAT and delivery charges | String | Required |
Deposit | The value of the deposit on the order. This will be subtracted by V12 from the cash price to derive the loan amount. Depending on configuration, this will be collected by either the retailer or V12. The standard maximum deposit is 50%, to discuss other deposit requirements please contact your account manager. | String | Required |
DuplicateSalesReferenceMethod | Defines the behaviour to be used in the event of the sales reference being a duplicate. For more information regarding enumeration values | Enumeration | Optional |
IpAddress | If supplied this value will be passed to Sira and used as part of the fraud checks that take place when the application is submitted for credit checking | String | Optional |
Lines | A collection of OrderLine objects which represent the content of the order. The sum of these should match the cash price, so the Price should be inclusive of VAT and lines should be present for delivery or discounts not taken into consideration at a line level | Object List | Optional |
vLink | If this value is set to True and an email address is supplied then the customer is sent an email which will contain a link for them to complete the application | Boolean | Optional |
Credit Policies | For use only by prior agreement with V12. If supplied this should be a comma separated list of credit policies that are to be used when the application is submitted for credit checking | String | Optional |
OrderLine
This represents one order line. The collection of these objects should total the cash price of the order so VAT and delivery charges should be included. Beware of rounding issues and any offers such as free delivery, a percentage off or coupons driving the total down. These can be adjusted with an OrderLine showing a negative amount as a discount.
Field Name | Description | Data Type | Required |
Qty | Quantity of this item | Integer | Optional |
SKU | Stock Keeping Unit identifier for this item | String(50) | Optional |
Item | Description of this item | String(100) | Optional |
Price | The gross price of this item. NOTE: This is the unit price, not price * quantity | Decimal | Optional |
Check Application Status
Use this call to check the status of an application at any time.
URL: https://apply.v12finance.com/latest/retailerapi/CheckApplicationStatus
Method: POST
Posted object: ApplicationStatusRequest
Response Object: ApplicationStatusResponse
Please note: Once the customer has signed the credit agreement the goods must be shipped to the address provided on the V12 application form. You can find out this information by using the CheckApplicationStatus endpoint and setting IncludeExtraDetails to true.
If you would like to request an alternate delivery address, please get in touch with your account manager.
This wrapper object includes Retailer object containing authentication data and the application ID to be queried.
Field Name | Description | Data Type | Required |
ApplicationId | As supplied by V12 in the response from the initial SubmitApplication packet | Integer | Required |
Retailer | Authentication object | Object | Required |
IncludeExtraDetails | If set to true, order lines and basic customer contact details are also returned | Boolean | Required |
IncludeFinancials | If set to true, financial details, including any refunds and settlement information are also returned | Boolean | Required |
{
"ApplicationId": 12345678,
"IncludeExtraDetails":"false",
"IncludeFinancials":"false",
"Retailer": {
"AuthenticationKey": "Your key here",
"RetailerGuid": "Your Guid here",
"RetailerId": "Your Id here"
}
}
12345678
false
false
Your key here
Your Guid here
Your Id here
{
"ApplicationFormUrl": "https://apply.v12finance.com/responsive/Application/Form/12345678/f2e835a1-e37a-4cce-9f3a-637aa0611174",
"ApplicationGuid": "f2e835a1-e37a-4cce-9f3a-637aa0611174",
"ApplicationId": 12345678,
"AuthorisationCode": "V12-1234567",
"Customer": null,
"Errors": [],
"Financials": {
"CashPrice": 0,
"Commission": 0,
"Deposit": 0,
"LoanAmount": 0,
"LoanAmountLessRefunds": 0,
"ProductId": 0,
"Refunds": [],
"SettlementDetails": [],
"Subsidy": 0
},
"OrderLines": [],
"SalesReference": "V12Test",
"SecondSalesReference": "",
"Status": 5,
"CreditPolicyTag": "SCP1"
}
//If IncludeExtraDetails and IncludeFinancials set as True
{
"ApplicationFormUrl": "https://apply.v12finance.com/responsive/Application/Form/12345678/f2e835a1-e37a-4cce-9f3a-637aa0611174",
"ApplicationGuid": "f2e835a1-e37a-4cce-9f3a-637aa0611174",
"ApplicationId": 12345678,
"AuthorisationCode": "V12-1234567",
"Customer": {
"Address": {
"BuildingName": "Unit 19-20",
"BuildingNumber": "",
"Country": 0,
"County": "Caerdydd",
"FlatNumber": "V12 Retail Finance Ltd",
"Locality": "",
"Matched": false,
"Postcode": "CF24 5PJ",
"Street": "Neptune Court Vanguard Way",
"TownOrCity": "Cardiff"
},
"EmailAddress": "Test@Test.com",
"FirstName": "Test",
"HomeTelephone": {
"Code": "01234",
"Number": "567890"
},
"LastName": "Test",
"MobileTelephone": {
"Code": "07123",
"Number": "456789"
},
"Title": 1
},
"Errors": [],
"Financials": {
"CashPrice": 1000,
"Commission": 0,
"Deposit": 100,
"LoanAmount": 900,
"LoanAmountLessRefunds": 900,
"ProductId": 27,
"Refunds": [],
"SettlementDetails": [],
"Subsidy": 56.25
},
"OrderLines": [],
"SalesReference": "V12Test",
"SecondSalesReference": "",
"Status": 5,
"CreditPolicyTag": "SCP1"
}
https://apply.v12finance.com/responsive/Application/Form/12345678/f2e835a1-e37a-4cce-9f3a-637aa0611174
f2e835a1-e37a-4cce-9f3a-637aa0611174
12345678
V12-1234567
0
0
0
0
0
0
0
V12Test
AwaitingFulfillment
SCP1
https://apply.v12finance.com/responsive/Application/Form/9522565/f2e835a1-e37a-4cce-9f3a-637aa0611174
f2e835a1-e37a-4cce-9f3a-637aa0611174
12345678
V12-1234567
Unit 19-20
0
Caerdydd
V12 Retail Finance Ltd
false
CF24 5PJ
Neptune Court Vanguard Way
Cardiff
Test@Test.com
Test
01234
567890
Test
07123
456789
Mr
1000.00
0
100.00
900.00
900.00
27
56.25
V12Test
AwaitingFulfillment
SCP1
Update Application
URL: https://apply.v12finance.com/latest/retailerapi/UpdateApplication
Method: POST
Posted object: ApplicationUpdateRequest
Response Object: ApplicationStatusResponse
This can be used to request the following updates to the status of a V12 application:
Field Name | Description |
Cancel | Will cancel the application in V12. The loan amount can optionally be supplied. If it is, then the cancellation will only work if this matched the loan amount on V12. Please note, applications that are declined should NOT be cancelled. |
Request Payment | Use this to request payment for the application when the goods have been shipped. The loan amount can optionally be supplied. If it is then the update will only work if this matches the loan amount on V12. |
Partial Refund | This can be used to request a partial refund on a V12 application, for example, when a customer returns part of their order. A refund amount must be specified and must be a positive number. The loan amount can be optionally supplied. If it is, then it should be equal to the original loan amount for the application minus any refunds you have previously processed. Within V12, the application must be at the 'Payment Processed' stage for this request to be accepted. |
AmendSalesReference | This can be used to amend the SalesReference and/or the SecondSalesReference for an application. To amend a SalesReference you must populate the NewSalesReference field. This is mandatory when making this type of request. The sales reference cannot be blank. To Amend a SecondSalesReference you must populate both the NewSalesReference and the NewSecondSalesReference fields. If no change is to be made to the SalesReference then populate NewSalesReference with the current SalesReference. |
The ApplicationId element of the posted object is now an optional field. If it is supplied, then only this will be used to search for the application in V12. If it is not supplied, then we will search for the application using either the SalesReference if this is supplied or the SalesReference AND the SecondSalesReference if both are supplied to V12.
{
"ApplicationUpdateRequest": {
"ApplicationId": 12345678,
"Retailer": {
"AuthenticationKey": "Your key here",
"RetailerGuid": "Your key here",
"RetailerId": "Your key here"
},
"Update": "Cancel",
"LoanAmount": "123.45",
"SalesReference": null,
"SecondSalesReference": null,
"RefundAmount": null
}
}
12345678
Your key here
Your Guid here
Your Id here
Cancel
900.00
{
"ApplicationUpdateRequest": {
"ApplicationId": 12345678,
"Retailer": {
"AuthenticationKey": "Your key here",
"RetailerGuid": "Your Guid here",
"RetailerId": "Your Id here"
},
"Update": "RequestPayment",
"LoanAmount": "123.45",
"SalesReference": null,
"SecondSalesReference": null
}
}
12345678
Your key here
Your Guid here
Your Id here
RequestPayment
900.00
{
"ApplicationUpdateRequest": {
"ApplicationId": 12345678,
"Retailer": {
"AuthenticationKey": "Your key here",
"RetailerGuid": "Your Guid here",
"RetailerId": "Your Id here"
},
"Update": "PartialRefund",
"LoanAmount": "123.45",
"SalesReference": null,
"SecondSalesReference": null,
"RefundAmount": "123.45"
}
}
12345678
Your key here
Your Guid here
Your Id here
PartialRefund
900.00
900.00
//Example 1 – only amending the sales reference
{"ApplicationUpdateRequest": {
"ApplicationId": 12345678,
"Retailer": {
"AuthenticationKey": "Your key here",
"RetailerGuid": "Your Guid here",
"RetailerId": "Your Id here"
},
"Update": "AmendSalesReference",
"SalesReference": "Old Sales Ref",
"NewSalesReference": "New Sales Ref"
}
}
//Example 2 – only amending the second sales reference
{"ApplicationUpdateRequest": {
"ApplicationId": 12345678,
"Retailer": {
"AuthenticationKey": "Your key here",
"RetailerGuid": "Your Guid here",
"RetailerId": "Your Id here"
},
"Update": "AmendSalesReference",
"SalesReference": "New Sales Ref",
"NewSalesReference": "New Sales Ref",
"SecondSalesReference": "",
"NewSecondSalesReference": "New Second Sales Ref"
}
}
//Example 3 – amending both sales references
{"ApplicationUpdateRequest": {
"ApplicationId": 12345678,
"Retailer": {
"AuthenticationKey": "Your key here",
"RetailerGuid": "Your Guid here",
"RetailerId": "Your Id here"
},
"Update": "AmendSalesReference",
"SalesReference": "New Sales Ref",
"NewSalesReference": "New Sales Ref Mk2",
"SecondSalesReference": "",
"NewSecondSalesReference": "New Second Sales Ref Mk2"
}
}
12345678
Your key here
Your Guid here
Your Id here
ABC123
XYZ456
AmendSalesReference
12345678
Your key here
Your Guid here
Your Id here
ABC123
XYZ456
2ndABC123
2ndXYZ456
AmendSalesReference
12345678
Your key here
Your Guid here
Your Id here
ABC123
ABC123
2ndABC123
2ndXYZ456
AmendSalesReference
{
"ApplicationFormUrl": "https://apply.v12finance.com/responsive/Application/Form/1324657/23f29c95-8366-4e8f-9f4e-fee5324e9f88",
"ApplicationGuid": "23f29c95-8366-4e8f-9f4e-fee5324e9f88",
"ApplicationId": 1324567,
"AuthorisationCode": "",
"Customer": null,
"Errors": [],
"Financials": {
"CashPrice": 1000,
"Commission": 0,
"Deposit": 0,
"LoanAmount": 1000,
"LoanAmountLessRefunds": 1000,
"ProductId": 27,
"Refunds": [],
"SettlementDetails": [],
"Subsidy": 62.5
},
"OrderLines": [],
"SalesReference": "V12Test",
"SecondSalesReference": "",
"Status": 100,
"CreditPolicyTag": "SCP1"
}
https://apply.v12finance.com/responsive/Application/Form/12345678/b0ce7bef-f3fd-4c3d-b4d6-aa3b64a8ec11
b0ce7bef-f3fd-4c3d-b4d6-aa3b64a8ec11
12345678
AGW-1234657
760.00
0
76.00
684.00
684.00
27
42.75
V12Test
Cancelled
SCP1
{
"ApplicationFormUrl": "https://apply.v12finance.com/responsive/Application/Form/12345678/ef03d61a-1d6e-4f5e-89a2-dc22d8eeee99",
"ApplicationGuid": "ef03d61a-1d6e-4f5e-89a2-dc22d8eeee99",
"ApplicationId": 12345678,
"AuthorisationCode": "AGW-1234567",
"Customer": null,
"Errors": [],
"Financials": {
"CashPrice": 600,
"Commission": 0,
"Deposit": 100,
"LoanAmount": 500,
"LoanAmountLessRefunds": 500,
"ProductId": 27,
"Refunds": [],
"SettlementDetails": [],
"Subsidy": 31.25
},
"OrderLines": [],
"SalesReference": "V12Test",
"SecondSalesReference": "",
"Status": 6,
"CreditPolicyTag": "SCP1"
}
https://apply.v12finance.com/responsive/Application/Form/12345678/f2e835a1-e37a-4cce-9f3a-637aa0611174
f2e835a1-e37a-4cce-9f3a-637aa0611174
12345678
V12-1234567
1000.00
0
100.00
900.00
900.00
27
56.25
V12Test
PaymentRequested
SCP1
{
"ApplicationFormUrl": "https://apply.v12finance.com/responsive/Application/Form/12345678/b0ce7bef-f3fd-4c3d-b4d6-aa3b64a8ec11",
"ApplicationGuid": "b0ce7bef-f3fd-4c3d-b4d6-aa3b64a8ec11",
"ApplicationId": 12345678,
"AuthorisationCode": "AGW-1234567",
"Customer": null,
"Errors": [],
"Financials": {
"CashPrice": 760,
"Commission": 0,
"Deposit": 76,
"LoanAmount": 684,
"LoanAmountLessRefunds": 634,
"ProductId": 27,
"Refunds": [
{
"RefundAmount": 50,
"RefundDate": "/Date(1558089609337+0100)/"
}
],
"SettlementDetails": [],
"Subsidy": 42.75
},
"OrderLines": [],
"SalesReference": "V12Test",
"SecondSalesReference": "",
"Status": 7,
"CreditPolicyTag": "SCP1"
}
https://apply.v12finance.com/responsive/Application/Form/12345678/ef03d61a-1d6e-4f5e-89a2-dc22d8eeee99
ef03d61a-1d6e-4f5e-89a2-dc22d8eeee99
12345678
AGW-1234567
600.00
0
100.00
500.00
400.00
27
100.00
2019-05-17T12:01:55.94
31.25
V12Test
PaymentProcessed
SCP1
//Example 1 – only amending the sales reference
{
"ApplicationFormUrl": "https://apply.v12finance.com/responsive/Application/Form/9508471/b5d7b0a1-d2cf-477f-b065-171cfcc6bf8f",
"ApplicationGuid": "b5d7b0a1-d2cf-477f-b065-171cfcc6bf8f",
"ApplicationId": 12345678,
"AuthorisationCode": "AGW-1234567",
"Customer": null,
"Errors": [],
"Financials": {
"CashPrice": 1000,
"Commission": 0,
"Deposit": 0,
"LoanAmount": 1000,
"LoanAmountLessRefunds": 1000,
"ProductId": 27,
"Refunds": [],
"SettlementDetails": [],
"Subsidy": 62.5
},
"OrderLines": [],
"SalesReference": "New Sales Ref",
"SecondSalesReference": "",
"Status": 4,
"CreditPolicyTag": "SCP1"
}
//Example 2 – only amending the second sales reference
{
"ApplicationFormUrl": "https://apply.test.v12finance.com/responsive/Application/Form/9508471/b5d7b0a1-d2cf-477f-b065-171cfcc6bf8f",
"ApplicationGuid": "b5d7b0a1-d2cf-477f-b065-171cfcc6bf8f",
"ApplicationId": 9508471,
"AuthorisationCode": "AGW-9508471",
"Customer": null,
"Errors": [],
"Financials": {
"CashPrice": 1000,
"Commission": 0,
"Deposit": 0,
"LoanAmount": 1000,
"LoanAmountLessRefunds": 1000,
"ProductId": 27,
"Refunds": [],
"SettlementDetails": [],
"Subsidy": 62.5
},
"OrderLines": [],
"SalesReference": "New Sales Ref",
"SecondSalesReference": "New Second Sales Ref",
"Status": 4,
"CreditPolicyTag": "SCP1"
}
//Example 3 – amending both sales references
{
"ApplicationFormUrl": "https://apply.test.v12finance.com/responsive/Application/Form/9508471/b5d7b0a1-d2cf-477f-b065-171cfcc6bf8f",
"ApplicationGuid": "b5d7b0a1-d2cf-477f-b065-171cfcc6bf8f",
"ApplicationId": 9508471,
"AuthorisationCode": "AGW-9508471",
"Customer": null,
"Errors": [],
"Financials": {
"CashPrice": 1000,
"Commission": 0,
"Deposit": 0,
"LoanAmount": 1000,
"LoanAmountLessRefunds": 1000,
"ProductId": 27,
"Refunds": [],
"SettlementDetails": [],
"Subsidy": 62.5
},
"OrderLines": [],
"SalesReference": "New Sales Ref Mk2",
"SecondSalesReference": "New Second Sales Ref Mk2",
"Status": 4,
"CreditPolicyTag": "SCP1"
}
https://apply.test.v12finance.com/responsive/Application/Form/9508471/b5d7b0a1-d2cf-477f-b065-171cfcc6bf8f
b5d7b0a1-d2cf-477f-b065-171cfcc6bf8f
9508471
AGW-9508471
1000.00
0
0.00
1000.00
1000.00
27
62.5
XYZ456
Accepted
SCP1
https://apply.test.v12finance.com/responsive/Application/Form/9508471/b5d7b0a1-d2cf-477f-b065-171cfcc6bf8f
b5d7b0a1-d2cf-477f-b065-171cfcc6bf8f
9508471
AGW-9508471
1000.00
0
0.00
1000.00
1000.00
27
62.5
XYZ456
Accepted
SCP1
https://apply.v12finance.com/responsive/Application/Form/12345678/b5d7b0a1-d2cf-477f-b065-171cfcc6bf8f
b5d7b0a1-d2cf-477f-b065-171cfcc6bf8f
12345678
AGW-1234567
1000.00
0
0.00
1000.00
1000.00
27
62.5
ABC123
2ndXYZ456
Accepted
SCP1
Finance Products
This method will return a list of all the finance products that are currently configured to your account.
Method: GET
Please insert your Retailer ID & Retailer Guid in the URL above.
Finance Product List Response
This object will return a list of all of the current valid finance products for the specified retailer.
Field Name | Description | Date Type |
Finance Products | List of FinanceProduct object | Object List |
Field Name | Description | Date Type |
Alt Tag | An alternative tag for the product. This is primarily to translate Pay4Later product codes to their V12 equivalent | String |
APR | The APR for this product | Decimal |
Calculation Factor | A factor that can be used to calculate finance payments | Decimal |
Deferred Period | Only applies to Buy Now Pay Later (BNPL) products. This is the number of months before the first payment is due | Integer |
Description | This contains a long description for a loan example with placeholders that should be updated with actual values for a calculated finance application | String |
DocumentFee | Document fee, as a flat rate, for the product (if applicable) | Decimal |
DocumentFee CollectionMonth | What month in the life of the loan will be document fee be collected | Integer |
DocumentFee Maximum | The maximum document fee permitted for this product | Integer |
DocumentFeeMinimum | The minimum document fee permitted for this product | Integer |
DocumentFee Percentage | Document fee, as a percentage of loan value, for the product (if applicable) | Decimal |
MaxLoan | The maximum loan value permitted for this product | Decimal |
MinLoan | The minimum loan value permitted for this product | Decimal |
MonthlyRate | The monthly rate of interest for the product | Decimal |
Months | The number of months this product runs for | Integer |
Name | The product's name | String |
OptionPeriod | The option period (in months) that apply to this product (if applicable) | Integer |
ProductGuid | The product's unique Guid | Guid |
ProductId | The product's unique Id | Integer |
ServiceFee | The service fee (if applicable) for this product | Decimal |
SettlementFee | The settlement fee (if applicable) for this product | Decimal |
Tag | The V12 tag for this product (short name) | String |
{
"Errors": [],
"FinanceProducts": [
{
"APR": 0,
"CalculationFactor": 0.166667,
"DeferredPeriod": 0,
"Description": "Amount of credit £$LOAN$. $TERM$ monthly repayments of £$INSTALMENT$. Representative APR $APR$%. Total
amount repayable £$CHARGE_FOR_CREDIT$.",
"DocumentFee": 0.0000,
"DocumentFeeCollectionMonth": 0,
"DocumentFeeMaximum": 0,
"DocumentFeeMinimum": 0,
"DocumentFeePercentage": 0,
"MaxLoan": 15000.0000,
"MinLoan": 250.0000,
"MonthlyRate": 0,
"Months": 6,
"Name": "Interest Free Finance (6 Months)",
"OptionPeriod": 0,
"ProductGuid": "…",
"ProductId": 123,
"ServiceFee": 0,
"SettlementFee": 0.00,
"Tag": "IFF6"
}
0
0.166667
0
Amount of credit £$LOAN$. $TERM$ monthly repayments of £$INSTALMENT$. Representative APR $APR$%. Total
amount repayable £$CHARGE_FOR_CREDIT$.
0.0000
0
0
0
0
15000.0000
250.0000
0
6
Interest Free Finance (6 Months)
0
…
123
0
0.00
IFF6
Amend Financials
URL: https://apply.v12finance.com/latest/retailerapi/AmendFinancials
Method: POST
Posted object: AmendFinancialsRequest
Response Object: AmendFinancialsResult
This method will, for a valid application Id update the financial parameters for that application. The new cash price parameter is mandatory and you can optionally specify a new deposit value and/or finance product. If the application has yet to be credit checked then the application will be updated and the monthly payments recalculated. If you request to amend the financials after credit checking then, as long as the new loan amount is less than our referral limit, the application will be recalculated, a new version of the finance contract will be created and an email will be sent to the customer informing them that they must sign the new contract. Please note if the deposit is set to be collected by V12, you will be unable to amend this once the application has been created.
Amend Financials Request
This object includes Retailer object containing authentication data and the application ID to be updated.
Field Name | Description | Data Type | Required |
ApplicationId | As supplied by V12 following the initial SubmitApplication | Integer | Required |
Retailer | Authentication object | Object | Required |
CashPrice | The new cash price for the application | String | Required |
Deposit | The new deposit value for the application | String | Optional |
ProductId | The new product Id for the application. This must match one of the values previously supplied by V12. | Integer | Optional |
Amend Financials Response
This object will return the original values for the application along with the amended ones if the request was successfully processed. Any errors that occurred will be returned in the Errors object which is a list of the ApplicationStatusResponseError object detailed earlier.
Field Name | Description | Data Type |
ApplicationId | As supplied by V12 following the initial SubmitApplication | Integer |
OriginalValues | The original values of the requested application | Object |
AmendedValues | The amended values of the requested application | Object |
Errors | List of ApplicationStatusResponseError object | Object |
Field Name | Description | Data Type |
CashPrice | The cash price for the application | String |
Deposit | The deposit value for the application | String |
LoanAmount | The loan amount for the application | Decimal |
ProductId | The product Id for the application | Integer |
{
"Retailer": {
"AuthenticationKey": "Your key here",
"RetailerGuid": "Your Guid here",
"RetailerId": "Your Id here",
"UserId": null
},
"ApplicationId":"12345678",
"CashPrice":"1200.00",
"Deposit":"120.00",
"ProductId": null
}
123456
1200.00
120.00
Your key here
Your Guid here
Your Id here
{
"ApplicationId": 12345678,
"AmendedValues": {"CashPrice":"1200.00", "Deposit":"120.00", "ProductId": "01"},
"OriginalValues": {"CashPrice":"1000.00", "Deposit":"100.00", "ProductId": "01"},
"Errors":[]
}
1200.00
120.00
27
2267906
1000.00
100.00
27
Get Settlement
URL: https://apply.v12finance.com/latest/retailerapi/GetSettlement
Method: POST
Posted object: SettlementRequest
Response Object: SettlementResult
This method will return settlement information for all applications that have been paid out during the specified time period.
Please note: This request is different to all other requests in that it works at chain and not retailer level. What this means is that, if, for example, you process both in-store and online finance applications then you will receive settlement information for both your in-store and online applications via this method.
Settlement Request
This object will contain chain data for authentication and a date range for querying.
Field Name | Description | Data Type | Required |
DateFrom | The start date to query | Date | Required |
DateTo | The end date to query. If not specified this is set to default to DateFrom value | Date | Optional |
Chain
This is the authentication packet, containing chain ID and Guid values, supplied by V12. The authentication key is used as a pre-shared secret.
Field Name | Description | Data Type | Required |
ChainId | Supplied by V12, used as a pair with ChainGuid | Integer | Required |
ChainGuid | Supplied by V12, used as a pair with RetailerId | Guid | Required |
AuthenticationKey | Supplied by V12, this is a pre-shared secret used to ensure messages have originated from a trusted source | String(50) | Required |
Settlement Response
This object will contain settlement details for the queried date range.
Field Name | Description | Data Type |
SettlementDates | List of SettlementSummary object. | Object list |
Errors | List of ApplicationStatusResponseError object | Object list |
Settlement Summary
Settlement summary information for a specific date.
Field Name | Description | Data Type |
DateFunded | The date the items were funded in V12 | Date |
ItemCount | Supplied by V12, used as a pair with RetailerId | Integer |
Items | List of SettlementItem object | Object list |
Payee | The payee, Secure Trust Bank PLC or V12 Personal Finance Limited | String |
Value | The total value of items funded on this date. | Decimal |
Settlement Item
Settlement information for an individual application.
Field Name | Description | Data Type |
ApplicationId | The V12 application ID | Integer |
CashPrice | Cash price of the application | String |
Commission | Amount of commission applicable to the application | Decimal |
CustomerName | The name of the customer for the application | String |
DateCancelRequested | The date this application was requested to be cancelled (if applicable) | Date |
DateDecision | The date this application was decided by V12 | Date |
DateFunded | The date this application was funded in V12 | Date |
DateShipped | The date the payment was requested for this application | Date |
LoanAmount | The loan amount for this application (cash price minus deposit) | Decimal |
Payment | The amount paid out by V12 | Decimal |
Postcode | The postcode for this application | String |
Product | The V12 finance product for this application | String |
SalesReference | The customer supplied sales reference for this application | String |
SecondSalesReference | The second customer supplied sales reference for this application (if applicable) | String |
Subsidy | Amount of subsidy applicable to this application | Decimal |
{
"Chain": {
"AuthenticationKey": "Your key here",
"ChainGuid": "Your Guid here",
"ChainId": "Your Id here"
},
"DateFrom":"2014-11-03",
"DateTo":"2014-11-03"
}
Your key here
Your Guid here
Your Id here
2019-02-21
2019-04-21
{
"Errors":[],
"SettlementDates":[
{"DateFunded":"03/11/2018",
"ItemCount":1,
"Items":[{
"ApplicationId":12345678,
"CashPrice":662.32,
"Commission":0,
"CustomerName":"Fred Flintstone",
"DateCancelRequested":"",
"DateDecision":"02/11/2018",
"DateFunded":"03/11/2018",
"DateShipped":"02/11/2018",
"LoanAmount":662.32,
"Payment":662.32,
"Postcode":"CF24 5PJ",
"Product":"CC24-18.9",
"SalesReference":"156295",
"SecondSalesReference":"",
"Subsidy":0}],
"Payee":"Secure Trust Bank PLC", "Value":662.322}]
}
2014-11-03
1
123456
123.45
0
Fred Flintstone
2014-11-02
2014-11-03
2014-11-02
123.45
123.45
CF24 5PJ
Take5DD
ABC1243
0
Secure Trust Bank PLC
123.45
SettlementDates >
Enumeration Values
eCustomerTitle | |
1 | Mr |
2 | Ms |
3 | Miss |
4 | Mrs |
eMarital Status | |
1 | Married |
2 | Single |
3 | Divorced |
4 | Widowed |
6 | Co-Habiting |
eUpdateType | |
40 | RequestPayment |
100 | Cancel |
200 | PartialRefund |
250 | AmendSalesReference |
eSex | |
1 | Male |
2 | Female |
eYesNo | |
0 | No |
1 | Yes |
eDocumentType | |
1 | Secci |
2 | Agreement |
eDuplicateSalesReferenceMethod | |
0 | ShowError |
1 | ShowOriginalApplication |
2 | CreateNewApplication |
eApplicationStatus | |
0 | Error |
1 | Acknowledged (New) |
2 | Referred |
3 | Declined |
4 | Accepted (Approved) |
5 | AwaitingFulfilment (Agreement received/Signed) |
6 | Payment Requested |
7 | Payment Processed (Funded) |
100 | Cancelled |
Error Codes
All the objects returned by the methods in our REST API contain a list of ApplicationStatusResponseError object as part of their response. The table below describes these error codes and their meaning.
General errors - Can be returned by multiple methods. | |
Code | Comment |
VALIDATION | This code will be returned when a submitted ApplicationRequest object fails validation checks. The description field in the object will state what field failed validation and why. The reference field will describe the location of the failing field within the object. As an example if the sales reference field was empty then the reference would be '/ApplicationRequest/Order/SalesReference'. |
APP001 | The requested application could not be found. |
APP002 | The requested application is not valid for the supplied retailer. |
SEC0001 | No retailer information was supplied with the submitted request. |
SEC0002 | The retailer information supplied was invalid or retailer is locked out. |
SEC0003 | No response was retrieved from V12 when trying to validate the retailer. |
SEC0005 |
Unable to validate product. This code covers a number of different scenarios which will be returned in the description. Possible values are:
|
UpdateApplication specific errors | |
VAL001 | An invalid update type was specified in the request. |
UPA001 | Date of births do not match. A date of birth was supplied as part of the originating request but it did not match what was stored within V12. |
UPA002 | Loan amount does not match. Generated if a loan amount was specified when requesting payment or cancellation for an application but it doesn't match what is stored in V12. |
UPA004 | Unable to process a partial refund. The exact reason why will be in the description field. |
UPA007 | Application has been cancelled. Generated if you try to request an update for an application that is already cancelled in V12. |
UPA008 | Application is at the wrong stage. Generated when trying to request payment for an application and the application is not at the correct stage (agreement received). |
ASR001 | NewSalesReference cannot be NULL. |
ASR002 | Invalid current SalesReference. The value that was supplied for the current sales reference does not match value stored in V12. |
ASR003 | Invalid current SecondSalesReference. The value that was supplied for the current second sales reference does not match value stored in V12. |
ASR004 | New sales reference currently in use by another application. |
AmendFinancials specific errors | |
AMF001 | The cash price submitted must be a positive value (>0). |
AMF002 | The deposit submitted must be a positive value (>=0). |
AMF003 | The retailer is not configured to use the AmendFinancials method. |
AMF006 | The deposit must be between the retailer's minimum and maximum deposit parameters. |
AMF007 | If deposits are collected by V12, it cannot be changed after the application has been created. |
SubmitApplication specific errors | |
DUP001 | A duplicate sales reference was detected when submitting a new application and the value for the DuplicationSalesReferenceMethod field was set to ShowError. |
DUP002 | A duplicate sales reference was supplied and the DuplicateSalesReferenceMethod was set to ShowOriginalApplication but the details on the submitted request did not match those of the original application. |
SEC0007 | New applications not allowed. Your account in V12 is currently not allowed to create any new finance applications. Contact your V12 account manager for more information. |
If you require assistance or advice from V12 NEW
Please get in touch if anything is unclear in this guide, or if you want to discuss a specific implementation of the process. We are happy to assist.
Email: Integration@v12finance.com
Telephone: 029 2046 6316
Mobile: 079 3288 3295