1.0.0 • Published 5 months ago
ibkr-api-sdk v1.0.0
IBKR API SDK
Introduction
The IBKR API SDK provides a simple way to integrate with Interactive Brokers (IBKR) API for account management and ACH transfers. This SDK helps developers interact with IBKR's API for:
✅ Account Creation
✅ KYC Submission
✅ Account Status Check
✅ Add Bank Accounts
✅ Delete Bank Accounts
✅ ACH Fund Transfers
📦 Installation
To install the package via NPM, run:
npm install ibkr-api-sdk
Or using Yarn:
yarn add ibkr-api-sdk
🔧 Configuration
Before using the SDK, set up your environment variables in a .env file:
IBKR_BASE_URL=https://localhost:5000/v1/api
IBKR_API_KEY=your_api_key
IBKR_ACCOUNT_ID=your_account_id
🚀 Usage
Import the SDK and start making API calls.
1️⃣ Create an IBKR Account
const Ibkr = require("ibkr-api-sdk");
async function createAccount() {
try {
const response = await Ibkr.createAccount({
firstName: "John",
lastName: "Doe",
email: "john.doe@example.com"
});
console.log("Account Created:", response);
} catch (error) {
console.error("Error:", error.message);
}
}
createAccount();
2️⃣ Submit KYC
async function submitKYC() {
try {
const response = await Ibkr.submitKYC({
userId: "U1234567",
documentType: "passport",
documentNumber: "123456789",
issueDate: "2023-01-01",
expiryDate: "2033-01-01"
});
console.log("KYC Submitted:", response);
} catch (error) {
console.error("Error:", error.message);
}
}
submitKYC();
3️⃣ Get Account Status
async function checkAccountStatus() {
try {
const response = await Ibkr.getAccountStatus();
console.log("Account Status:", response);
} catch (error) {
console.error("Error:", error.message);
}
}
checkAccountStatus();
4️⃣ Add a Bank Account
async function addBankAccount() {
try {
const response = await Ibkr.addBank({
bankName: "Bank of America",
accountNumber: "123456789",
routingNumber: "987654321",
accountType: "checking"
});
console.log("Bank Account Added:", response);
} catch (error) {
console.error("Error:", error.message);
}
}
addBankAccount();
5️⃣ Delete a Bank Account
async function deleteBankAccount() {
try {
const response = await Ibkr.deleteBank("bank123");
console.log("Bank Account Deleted:", response);
} catch (error) {
console.error("Error:", error.message);
}
}
deleteBankAccount();
6️⃣ Perform an ACH Transfer
async function performACHTransfer() {
try {
const response = await Ibkr.achTransfer({
amount: 1000,
currency: "USD",
recipientAccount: "recipient123"
});
console.log("ACH Transfer Successful:", response);
} catch (error) {
console.error("Error:", error.message);
}
}
performACHTransfer();
🛠 API Methods
Method Description Parameters
createAccount(data) Create a new IBKR account { firstName, lastName, email }
submitKYC(data) Submit KYC for verification { userId, documentType, documentNumber, issueDate, expiryDate }
getAccountStatus() Retrieve IBKR account status N/A
addBank(data) Add a bank account { bankName, accountNumber, routingNumber, accountType }
deleteBank(bankId) Remove a bank account bankId
achTransfer(data) Perform an ACH fund transfer { amount, currency, recipientAccount }
📌 Environment Variables
Variable Name Description
IBKR_BASE_URL The IBKR API base URL (e.g., https://localhost:5000/v1/api)
IBKR_API_KEY Your IBKR API Key
IBKR_ACCOUNT_ID Your IBKR Account ID
📖 IBKR API Documentation
Refer to the official IBKR API Documentation for more details:
🔗 IBKR API Docs
🔍 Troubleshooting
❓ "Unauthorized" Error
Check if IBKR Gateway/TWS is running.
Ensure API key is correct and permissions are enabled.
❓ "Invalid Account" Error
Verify your IBKR_ACCOUNT_ID is correct.
❓ Connection Refused
Restart IBKR Gateway:
killall ibgateway
./ibgateway
📄 License
This project is licensed under the MIT License.
👨💻 Contributors
Your Name - Developer
Contributors Welcome! If you'd like to improve this package, feel free to submit a PR!
⭐ Support & Contributions
💡 Found a bug? Have a feature request?
Submit an issue or PR on GitHub.
✅ If you find this package useful, please star this repository! 🌟
---
## **📌 How to Use It?**
1. Copy this **`README.md`** and place it inside your **NPM package root folder**.
2. After publishing, it will appear as the **package documentation** on **npmjs.com**.
---
## **🚀 Next Steps**
- ✅ **README.md completed**
- ✅ **NPM package structure & implementation done**
- 🔒 **OAuth Authentication (Optional, for better security)**
- ✅ **Testing with Jest** (if needed)
Would you like **unit tests** or **OAuth authentication** next? 🚀
1.0.0
5 months ago