### API Environment Configuration
Source: https://bondsmith.stoplight.io/docs/savings/afe881847d6de-bondsmith-savings-public-ap-is
Base URLs for interacting with the Bondsmith Savings API environments.
```APIDOC
## API Base URLs
### Sandbox
https://api.sandbox.b7h.io
### Production
https://api.bondsmith.com
```
--------------------------------
### Order Confirmation File Structure
Source: https://bondsmith.stoplight.io/docs/exchange-file-docs/492cea040f734-order-confirmation-file
Details the structure and fields of the Order Confirmation file.
```APIDOC
## Order Confirmation File
### Description
The Order Confirmation file is sent daily to the distributor to indicate the status of all orders received in the previous 24 hours. Orders can be in one of three states: `ACCEPTED`, `REJECTED`, or `PENDING`.
### File Structure
#### Header Record
| Col | Name | Description | Format | Req. | Validations for Investment Partner |
|---|---|---|---|---|---|
| 1 | Record Count | Number of data records (i.e. rows) in the file | Number | Yes | This must match the number of data records in the file |
| 2 | Date | Date the order file was raised | dd/mm/yyyy | Yes | This must not be in the future. |
| 3 | Time | Time of the day in UK time (BST/GMT) when the file is produced | hh:mi 24 hour format | Yes | |
| 4 | Total Payment | Total amount to be transferred by the Distributor platform to Bondsmith | Money | Yes | Sum of deposit order amounts |
#### Data Record
| Col | Name | Description | Format | Req. | Validations for Investment Partner |
|---|---|---|---|---|---|
| 1 | Account reference | Your unique account reference | Text(36) | Yes | |
| 2 | Product code | Your unique code for the product which should be generated for each instance. I.e. the Bondsmith Product Id is the 'template' code and whenever anyone opens an account you generate an 'instance' code on your side. | Text(36) | Yes | |
| 3 | Bondsmith Product Id | Bondsmith identifier for the product (External product ID from your perspective). Must be valid product ID from the Product Data file | Text(36) | Yes | If the order is a product transfer, this is the product you're transferring to |
| 4 | Order ref | Your unique order reference | Text(36) | Yes | |
| 5 | Order Type | 'Buy' for deposit orders, 'Sell' for withdrawal orders" | Text(5) | Yes | |
| 6 | Order Amount | For purchases, this must be the amount of monies that will be invested into the product. For sales, this must be the amount of monies that need to be disinvested from the product. | Number with 2 decimal places | Yes | |
| 7 | isTransfer | For a product transfer, this flag must be set to Y. For all other orders, this flag must be set to N. | Boolean (Y/N) | Yes | |
| 8 | Sell All Flag | For a full withdrawal order, this flag must be set to Y. For all other orders, this must be N | Boolean (Y/N) | Yes | |
| 9 | Customer Type | The customer type of the account purchasing the product. [Individual, Joint, Corporate, Charity] | Text(10) | Yes | |
| 10 | Sub account Type | The subaccount type the product will be held in. [GIA, WrapCash, SIPP, ISA, SSAS] | Text(8) | Yes | |
| 11 | Accepted | Accepted - where the partner accepts the instruction, Rejected - where the partner rejects the instruction (meaning you should cancel the order) | Accepted/Rejected | Yes | |
| 12 | Completion Date | Where the order is not to be completed immediately this will be a future date | dd/mm/yyyy | Yes | Must be current or future date. For securitysubtype=notice sells this will be future dated (i.e. 30 days in the future for 30 day notice accounts) |
| 13 | Settlement Date | The date the buy order will settle (required for tranche based term deposits with a future dated start date) | dd/mm/yyyy | No | Only applicable to buy orders |
| 14 | Rejection reason | The reason for order rejection | 10/20/30/40/50/60 | No | Rejection codes:
10 - Product is closed
20 - Customer failed KYC
30 - Order does not match min/max deposit requirements
40 - Invalid tax wrapper
50 - Invalid withdrawal request (withdrawal from term product or invalid amount)
60 - Invalid order (negative amount, incorrect decimal points)
70 - Pending nominated account change
80 - Inconsistent order information (provided customer or account parameters contradict information in other orders by the depositor) |
```
--------------------------------
### Interest File Structure
Source: https://bondsmith.stoplight.io/docs/exchange-file-docs/c1d922b002c34-interest-file
Details the structure and fields of the Interest file, which logs customer product account interest.
```APIDOC
## Interest File
### Description
The Interest file shows all the interest added to customer product accounts in the previous business day. It includes header and data sections with specific field requirements.
### File Structure
#### Header
- **Record Count** (Number) - Required - Number of data records (i.e. rows) in the file. Must match the number of data records.
- **Date** (dd/mm/yyyy) - Required - Date the order file was raised. Must not be in the future.
- **Time** (hh:mi 24 hour format) - Required - Time of the day in UK time (BST/GMT) when the file is produced.
#### Data
- **Account reference** (Text(36)) - Required - Your unique account reference. Must be a valid platform Sub Account number.
- **Product Instance Code** (Text(36)) - Required - Your unique code for the product instance. Must be a valid reference.
- **Cash Type** (Text(10)) - Required - Specifies the type of cash, e.g., 'Interest'.
- **Amount** (Number with 2 decimal places) - Required - The amount of the payment.
- **Currency** (Text(3)) - Required - 3-digit ISO code of the currency (e.g., GBP). Can be '0' if all values are in UK sterling.
- **Paid** (Text(1)) - Required - Indicates if the interest was paid ('Y') or retained ('N').
```
--------------------------------
### Savings File API
Source: https://bondsmith.stoplight.io/docs/exchange-file-docs/c1d922b002c34-interest-file
Overview of the Savings File API, including its flow and related sections.
```APIDOC
## Savings File API
### Description
This section provides an overview of the Savings File API, detailing its flow and related components.
### API Sections
- Savings File Flow
- Files
- Static Data
- Orders
- Order Confirmation
- Order Completion
- Distributions
- Valuations
- Interest
```
--------------------------------
### API Base URL
Source: https://bondsmith.stoplight.io/docs/savings/6804605c4ef49-bondsmith-savings-exchange-simulator-ap-is
The base URL for all simulator API requests.
```APIDOC
## Base URL
### Sandbox
https://simulator-api.sandbox.b7h.io
```
--------------------------------
### Order Completion File Structure
Source: https://bondsmith.stoplight.io/docs/exchange-file-docs/9d8cfd9f7a994-order-completion-file
Details the header and data record fields required for the Order Completion file.
```APIDOC
## Order Completion File
### Description
The Order Completion file contains details of all deposits and withdrawals completed during the business day.
### File Structure
#### Header
- **Record Count** (Number) - Required - Number of data records in the file. Must match actual count.
- **Date** (dd/mm/yyyy) - Required - Date the order file was raised. Must not be in the future.
- **Time** (hh:mi) - Required - Time of day in UK time (BST/GMT) when the file is produced.
#### Data
- **Account reference** (Text 36) - Required - Unique account reference.
- **Product code** (Text 36) - Required - Unique code for the product instance.
- **Bondsmith Product Id** (Text 36) - Required - Bondsmith identifier for the product.
- **Order ref** (Text 36) - Required - Unique order reference.
- **Order Amount** (Number 2dp) - Required - Amount invested or disinvested.
- **Customer Type** (Text 10) - Required - [Individual, Joint, Corporate, Charity].
- **Sub account Type** (Text 8) - Required - [GIA, WrapCash, SIPP, ISA, SSAS].
- **Partner Confirmation Flag** (Pending/Completed) - Required - Status of the order processing.
- **Completion Date** (dd/mm/yyyy) - Required - Date money reached the deposit taker. Blank if Pending.
- **Gross interest** (Number 2dp) - Required - Gross interest rate as a percentage.
- **AER** (Number 2dp) - Required - Interest rate as a percentage (AER).
```
--------------------------------
### Authentication
Source: https://bondsmith.stoplight.io/docs/savings/6804605c4ef49-bondsmith-savings-exchange-simulator-ap-is
Details on how to authenticate with the Bondsmith Simulator API using OAuth 2.0.
```APIDOC
## OAuth 2.0 Authentication
### Description
The API uses the Client Credentials OAuth flow for secure access.
### Token URL
https://auth.sandbox.b7h.io/oauth2/token
### Scopes
- public-api/default - Default Scope
```
--------------------------------
### Authentication Overview
Source: https://bondsmith.stoplight.io/docs/savings/afe881847d6de-bondsmith-savings-public-ap-is
Details regarding the OAuth 2.0 Client Credentials flow required to access the Bondsmith Savings API.
```APIDOC
## Authentication
### Description
The Bondsmith Savings API uses OAuth 2.0 with the Client Credentials flow for authentication.
### Token Endpoint
- **Sandbox**: https://auth.sandbox.b7h.io/oauth2/token
### Scopes
- **public-api/default**: Default scope for API access.
```
--------------------------------
### Static Data File Specification
Source: https://bondsmith.stoplight.io/docs/exchange-file-docs/6474e65c17ec3-static-data-file
Details the structure and validation rules for the nightly generated Static Data file.
```APIDOC
## Static Data File Structure
### Description
The Static Data file is generated every night to indicate all the products that are available to the distributor.
### Header Fields
- **Record Count** (Number) - Required - Number of data records in the file.
- **Date** (dd/mm/yyyy) - Required - Date the order file was raised.
- **Time** (hh:mi) - Required - Time of the day in UK time when the file is produced.
### Data Fields
- **Deposit taker name** (Text(30)) - Required
- **Access** (Text(10)) - Required - Term/Notice/Instant
- **Deposit taker reference** (Text(50)) - Required
- **Term months** (Number) - Optional - Required when Access = Term
- **Notice days** (Number) - Optional - Required when Access = Notice
- **Apply by** (dd/mm/yyyy) - Optional
- **Start date** (dd/mm/yyyy) - Optional
- **Bondsmith Product ID** (Text(36)) - Required
- **Gross Rate** (Number) - Required - 2 decimal places
- **AER** (Number) - Required - 2 decimal places
- **Currency** (Text(3)) - Required - 3-digit ISO code
- **Rate changing** (Text(5)) - Optional - Up/Down
- **Rate change date** (dd/mm/yyyy) - Optional
- **Rate change announced** (dd/mm/yyyy) - Optional
- **New Gross Rate** (Number) - Optional
- **New AER Rate** (Number) - Optional
- **ISA Tradeable** (Text(1)) - Required - Y/N
- **Unwrapped Tradeable** (Text(1)) - Required - Y/N
- **Pension Tradeable** (Text(1)) - Required - Y/N
- **Individual Tradeable** (Text(1)) - Required - Y/N
- **Joint Tradeable** (Text(1)) - Required - Y/N
- **Created** (dd/mm/yyyy) - Required
- **Last Modified** (dd/mm/yyyy) - Required
- **Minimum investment** (Number) - Required
- **Maximum investment** (Number) - Required
- **Enabled** (Text(1)) - Required - Y/N
- **FSCS Information** (Text(500)) - Required - Valid https URL
- **Product brochure** (Text(500)) - Optional - Valid https URL
- **T&Cs** (Text(500)) - Optional - Valid https URL
- **Sharia product** (Text(1)) - Required - Y/N
```
--------------------------------
### Distributions File Structure
Source: https://bondsmith.stoplight.io/docs/exchange-file-docs/0edb39e6ab2b3-distributions-file
The Distributions file details all money paid to the distributor in respect of withdrawals and maturities. It includes header information and data records.
```APIDOC
## Distributions File Structure
### Description
The Distributions file details all money paid to the distributor in respect of withdrawals and maturities.
### File Structure
#### Header Record
- **Record Count** (Number) - Required - Number of data records (i.e. rows) in the file. This must match the number of data records in the file.
- **Date** (dd/mm/yyyy) - Required - Date the order file was raised. This must not be in the future.
- **Time** (hh:mi 24 hour format) - Required - Time of the day in UK time (BST/GMT) when the file is produced.
#### Data Record
- **Deposit taker name** (Text(30)) - Required - The name of the deposit taking bank.
- **Access** (Text(10)) - Required - The type of access or withdrawal rules for the deposit (Term/Notice/Instant).
- **Deposit taker reference** (Text(50)) - Required - Unique Id for the deposit taker.
- **Term months** (Number) - Optional - Term of the deposit in months. Required when Access = Term.
- **Notice days** (Number) - Optional - Notice period of the deposit in days. Required when Access = Notice.
- **Apply by** (dd/mm/yyyy) - Optional - Last date orders can be placed. Only present when Access = Term (but not required).
- **Start date** (dd/mm/yyyy) - Optional - The date the account would be opened (relevant for tranche FTDs). Only present when Access = Term (but not required).
- **Bondsmith Product ID** (Text(36)) - Required - The unique instrument identifier from Bondsmith's perspective.
- **Gross Rate** (Number with 2 decimal places) - Required - Gross interest rate as a percentage.
- **AER** (Number with 2 decimal places) - Required - Annual equivalent rate as a percentage.
- **Currency** (Text(3)) - Required - 3-digit ISO code of the currency of the valuation e.g. GBP. This can also be supplied as 0 if all values are always in UK sterling.
- **Rate changing** (Text(5)) - Optional - Indicates if the rate is increasing, decreasing in the future date (Up/Down).
- **Rate change date** (dd/mm/yyyy) - Optional - Date of any upcoming rate change. Must be greater than or equal to today.
- **Rate change announced** (dd/mm/yyyy) - Optional - The date the rate change was announced. Use this to trigger the notification and ensure it is only triggered once.
- **New Gross Rate** (Number with 2 decimal places) - Optional - New gross rate as a percentage.
- **New AER Rate** (Number with 2 decimal places) - Optional - New annual equivalent rate as a percentage.
- **ISA Tradeable** (Text(1)) - Required - Indicates if the instrument can be purchased in an ISA wrapper (Y/N).
- **Unwrapped Tradeable** (Text(1)) - Required - Indicates if the instrument can be purchased in a GIA wrapper (Y/N).
- **Pension Tradeable** (Text(1)) - Required - Indicates if the instrument can be purchased in a SIPP wrapper (Y/N).
- **Individual Tradeable** (Text(1)) - Required - Indicates if the instrument can be purchased by client type individual (Y/N).
- **Joint Tradeable** (Text(1)) - Required - Indicates if the instrument can be purchased by client type joint (Y/N).
- **Created** (dd/mm/yyyy) - Required - Date the instrument is created. Cannot be in the future.
- **Last Modified** (dd/mm/yyyy) - Required - Date of last modification. Cannot be in the future.
- **Minimum investment** (Number with 2 decimal places) - Required - Minimum deposit into the account.
- **Maximum investment** (Number with 2 decimal places) - Required - Maximum deposit into the account.
- **Enabled** (Text(1)) - Required - Allows deposits into the account (Y/N).
- **FSCS Information** (Text(500)) - Required - URL to FSCS information PDF. Must be a valid URL starting with https://.
- **Product brochure** (Text(500)) - Optional - URL to Product Brochure PDF. Must be a valid URL starting with https://.
- **T&Cs** (Text(500)) - Optional - URL to Product T&Cs PDF. Must be a valid URL starting with https://.
- **Sharia product** (Text(1)) - Required - Indicates if the instrument is a Sharia-compliant product (Y/N).
```
--------------------------------
### Status Embed
Source: https://bondsmith.stoplight.io/docs/exchange-file-docs/c1d922b002c34-interest-file
Information on how the status embed is displayed when incidents or maintenance are posted.
```APIDOC
## Status Embed
### Description
This section describes the status embed functionality. It will be shown if an incident or maintenance is posted on your status page. It provides a way to view the latest updates.
### View Latest Updates
[Link to view latest updates]
```
=== COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.