Rocket Tradeline

Rocket Tradeline Apis

Install Rocket Tradeline

bench get-app https://github.com/BigPhilsnr/rocket-tradeline

Add the Frappe Gems badge to your README

Maintain Rocket Tradeline? Paste this into your README:

[![Listed on Frappe Gems](https://frappegems.com/api/method/frappe_gems.seo.badge?app=BigPhilsnr%2Frocket-tradeline)](https://frappegems.com/gems/apps/BigPhilsnr/rocket-tradeline)

About Rocket Tradeline

🚀 Rockettradeline API Documentation

A comprehensive tradeline management system built on Frappe Framework with powerful cart management, payment processing, and user authentication features.

📋 Table of Contents

🎯 Overview

The Rockettradeline API provides a complete solution for managing tradelines, shopping carts, payments, and user authentication. It's built on Frappe Framework and offers both RESTful APIs and advanced features like JWT authentication, real-time cart management, and secure payment processing.

Key Features

  • 🔐 JWT Authentication - Secure token-based authentication
  • 🛒 Advanced Cart Management - Full shopping cart lifecycle
  • 💳 Payment Processing - Multiple payment methods and fee calculations
  • 📧 Email Verification - Automated email verification system
  • 👥 User Management - Complete user lifecycle management
  • 🏦 Tradeline Management - Comprehensive tradeline operations

🌐 Base URL

Production: https://rockettradeline.com/api/method/
Staging: https://www.rockettradeline.com/api/method/

🔐 Authentication

The API uses JWT (JSON Web Token) authentication. Include the token in the request headers:

X-Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Authentication Flow

  1. Sign Up → Create account with email verification
  2. Login → Get JWT token
  3. Use Token → Include in all authenticated requests
  4. Refresh Token → Extend token expiry

📚 API Endpoints

🔑 Authentication APIs

POST /rockettradeline.api.auth.sign_up

Create a new user account with email verification.

Request Body:

{
  "email": "user@example.com",
  "full_name": "John Doe",
  "password": "securepassword123",
  "phone": "+1234567890"
}

Response:

{
  "success": true,
  "message": "Account created successfully! Please check your email to verify your account before logging in.",
  "email_sent": true,
  "user": {
    "name": "user@example.com",
    "email": "user@example.com",
    "full_name": "John Doe",
    "phone": "+1234567890",
    "email_verified": false
  },
  "customer": {
    "name": "CUST-00001",
    "customer_name": "John Doe",
    "customer_type": "Individual",
    "email_id": "user@example.com",
    "mobile_no": "+1234567890"
  }
}

POST /rockettradeline.api.auth.login

Authenticate user and receive JWT token.

Request Body:

{
  "usr": "user@example.com",
  "pwd": "securepassword123"
}

Response:

{
  "success": true,
  "message": "Login successful",
  "authorization_token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 86400,
  "user": {
    "name": "user@example.com",
    "email": "user@example.com",
    "full_name": "John Doe",
    "user_image": null,
    "phone": "+1234567890",
    "role_profile_name": null,
    "roles": ["Customer"]
  },
  "customer": {
    "name": "CUST-00001",
    "customer_name": "John Doe",
    "customer_type": "Individual",
    "email_id": "user@example.com",
    "mobile_no": "+1234567890"
  }
}

GET /rockettradeline.api.auth.get_current_user

Get current authenticated user details.

Headers: X-Authorization: Bearer {token}

Response:

{
  "success": true,
  "user": {
    "name": "user@example.com",
    "email": "user@example.com",
    "full_name": "John Doe",
    "user_image": null,
    "phone": "+1234567890",
    "roles": ["Customer"],
    "user_type": "Website User",
    "enabled": true
  },
  "customer": {
    "name": "CUST-00001",
    "customer_name": "John Doe",
    "customer_type": "Individual",
    "email_id": "user@example.com",
    "mobile_no": "+1234567890",
    "addresses": []
  }
}

PUT /rockettradeline.api.auth.update_profile

Update user profile information.

Headers: X-Authorization: Bearer {token}

Request Body:

{
  "full_name": "John Smith",
  "phone": "+1234567890",
  "gender": "Male",
  "date_of_birth": "1990-01-01",
  "social_security_number": "123-45-6789",
  "address_line1": "123 Main St",
  "address_line2": "Apt 4B",
  "city": "New York",
  "state": "NY",
  "zipcode": "10001",
  "country": "United States",
  "address_type": "Personal"
}

Response:

{
  "success": true,
  "message": "Profile updated successfully",
  "user": {
    "name": "user@example.com",
    "email": "user@example.com",
    "full_name": "John Smith",
    "phone": "+1234567890",
    "user_image": null,
    "birth_date": "1990-01-01"
  },
  "customer": {
    "name": "CUST-00001",
    "customer_name": "John Smith",
    "customer_type": "Individual",
    "email_id": "user@example.com",
    "mobile_no": "+1234567890",
    "gender": "Male",
    "tax_id": "123-45-6789"
  },
  "address": {
    "name": "ADDR-00001",
    "address_title": "John Smith - Personal",
    "address_type": "Personal",
    "address_line1": "123 Main St",
    "address_line2": "Apt 4B",
    "city": "New York",
    "state": "NY",
    "pincode": "10001",
    "country": "United States"
  }
}

GET /rockettradeline.api.auth.verify_email?token={verification_token}

Verify user email address.

Response: HTML page with verification status

POST /rockettradeline.api.auth.resend_verification_email

Resend email verification.

Request Body:

{
  "email": "user@example.com"
}

POST /rockettradeline.api.auth.refresh_token

Refresh JWT token.

Headers: X-Authorization: Bearer {token}

Response:

{
  "success": true,
  "message": "Token refreshed successfully",
  "authorization_token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 86400
}

🏦 Tradeline APIs

GET /rockettradeline.api.tradeline.get_tradelines

Get list of available tradelines with filtering and pagination.

Parameters: - limit (int): Number of records to return (default: 20) - start (int): Starting offset (default: 0) - search (string): Search by bank name - filters (JSON): Advanced filtering options

Example Request:

GET /api/method/rockettradeline.api.tradeline.get_tradelines?limit=10&start=0&search=Chase&filters={"min_price":100,"max_price":500}

Response:

{
  "success": true,
  "tradelines": [
    {
      "name": "00017",
      "bank": "JPMCB Chase",
      "age_year": 2023,
      "age_month": 0,
      "credit_limit": 22400,
      "price": 285.0,
      "max_spots": 4,
      "remaining_spots": 3,
      "closing_date": 14,
      "credit_utilization_rate": 0.0,
      "status": "Active",
      "bank_name": "JPMCB Chase"
    }
  ]
}

GET /rockettradeline.api.tradeline.get_tradeline

Get detailed information about a specific tradeline.

Parameters: - tradeline_id (string): Tradeline ID

Response:

{
  "success": true,
  "tradeline": {
    "name": "00017",
    "bank": "JPMCB Chase",
    "bank_name": "JPMCB Chase",
    "age_year": 2023,
    "age_month": 0,
    "credit_limit": 22400,
    "price": 285.0,
    "max_spots": 4,
    "remaining_spots": 3,
    "purchased_spots": 1,
    "closing_date": 14,
    "credit_utilization_rate": 0.0,
    "status": "Active",
    "balance": 0,
    "card_holder": {
      "name": "CH-00001",
      "fullname": "John Cardholder",
      "email": "cardholder@example.com",
      "phone": "+1234567890"
    },
    "mailing_address": {
      "name": "MA-00001"
    }
  }
}

GET /rockettradeline.api.tradeline.get_banks

Get list of available banks.

Response:

{
  "success": true,
  "banks": [
    {
      "name": "BANK-00001",
      "bank_name": "Chase",
      "image": "/files/chase-logo.png"
    },
    {
      "name": "BANK-00002",
      "bank_name": "Bank of America",
      "image": "/files/boa-logo.png"
    }
  ]
}

POST /rockettradeline.api.tradeline.create_tradeline 🔒

Create a new tradeline (requires authentication and permissions).

Headers: X-Authorization: Bearer {token}

Request Body:

{
  "bank": "BANK-00001",
  "age_year": 2020,
  "age_month": 6,
  "credit_limit": 15000,
  "price": 250.0,
  "max_spots": 5,
  "closing_date": 15,
  "card_holder": "CH-00001",
  "mailing_address": "MA-00001",
  "credit_utilization_rate": 0.0,
  "balance": 0,
  "status": "Active"
}

🛒 Cart Management APIs

POST /rockettradeline.api.cart.create_cart 🔒

Create a new shopping cart.

Headers: X-Authorization: Bearer {token}

Response:

{
  "success": true,
  "message": "Cart created successfully",
  "cart": {
    "name": "CART-0018",
    "user_id": "user@example.com",
    "customer": "CUST-00001",
    "status": "Active",
    "cart_expiry": "2025-09-16 01:48:04.844866",
    "payment_mode": null,
    "payment_status": "Pending",
    "subtotal": 0.0,
    "discount_amount": 0.0,
    "tax_amount": 0.0,
    "total_amount": 0.0,
    "items": []
  },
  "cart_id": "CART-0018"
}

GET /rockettradeline.api.cart.get_cart 🔒

Get current active cart or specific cart by ID.

Headers: X-Authorization: Bearer {token}

Parameters: - cart_id (optional): Specific cart ID

Response:

{
  "success": true,
  "cart": {
    "name": "CART-0018",
    "user_id": "user@example.com",
    "customer": "CUST-00001",
    "status": "Active",
    "subtotal": 600.0,
    "discount_amount": 0.0,
    "tax_amount": 0.0,
    "total_amount": 600.0,
    "items": [
      {
        "name": "tkesje5e45",
        "tradeline": "00018",
        "tradeline_name": "BANK OF AMERICA",
        "quantity": 2,
        "rate": 300.0,
        "amount": 600.0,
        "tradeline_details": {
          "bank": "BANK OF AMERICA",
          "age_year": 2016,
          "age_month": 0,
          "credit_limit": 10300,
          "max_spots": 2,
          "status": "Active"
        }
      }
    ]
  },
  "cart_summary": {
    "cart_id": "CART-0018",
    "item_count": 1,
    "subtotal": 600.0,
    "discount_amount": 0.0,
    "tax_amount": 0.0,
    "total_amount": 600.0,
    "is_expired": false
  }
}

POST /rockettradeline.api.cart.add_to_cart 🔒

Add tradeline to cart.

Headers: X-Authorization: Bearer {token}

Request Body:

{
  "tradeline_id": "00018",
  "quantity": 1,
  "cart_id": "CART-0018"
}

Response:

{
  "success": true,
  "message": "Item added to cart successfully",
  "cart": {
    "name": "CART-0018",
    "total_amount": 300.0,
    "items": [
      {
        "tradeline": "00018",
        "tradeline_name": "BANK OF AMERICA",
        "quantity": 1,
        "rate": 300.0,
        "amount": 300.0
      }
    ]
  },
  "cart_summary": {
    "cart_id": "CART-0018",
    "item_count": 1,
    "total_amount": 300.0
  }
}

PUT /rockettradeline.api.cart.update_cart_item 🔒

Update item quantity in cart.

Headers: X-Authorization: Bearer {token}

Request Body:

{
  "tradeline_id": "00018",
  "quantity": 2,
  "cart_id": "CART-0018"
}

DELETE /rockettradeline.api.cart.remove_from_cart 🔒

Remove item from cart.

Headers: X-Authorization: Bearer {token}

Request Body:

{
  "tradeline_id": "00018",
  "cart_id": "CART-0018"
}

DELETE /rockettradeline.api.cart.clear_cart 🔒

Clear all items from cart.

Headers: X-Authorization: Bearer {token}

Request Body:

{
  "cart_id": "CART-0018"
}

POST /rockettradeline.api.cart.apply_discount 🔒

Apply discount to cart.

Headers: X-Authorization: Bearer {token}

Request Body: ```json { "dis

Related Other apps for Frappe & ERPNext

  • Erpnext — Free and Open Source Enterprise Resource Planning (ERP)
  • Helpdesk — Modern, Streamlined, Free and Open Source Customer Service Software
  • Print Designer — Visual print designer for Frappe / ERPNext
  • Ctr — CTR模型代码和学习笔记总结
  • Whitelabel — Whitelabel ERPNext
  • Fossunited — fossunited.org
  • Helm — Helm Chart Repository for Frappe/ERPNext
  • Frappe Attachments S3 — A frappe app to upload file attachments in doctypes to s3.