DivPix: A solution for Starkinfra

Description

Our project is named DivPix. The solution allows StarkInfra customers (specially Fintechs) to offer split payments through Pix to their customer base, charging interest on these payments, and taking the credit risk for themselves.

Aspects of the solution

Our product does not want to take credit risk to Stark Infra, we just want to allow our clients to emit credit to their customer bases.

Here is what our solution is comprised of:

  • API of split payments through Pix comprising of the following routes:
    • ROUTES
  • Checkout Page for customers of our customers, in order to alleviate front-end development (similar to what Stripe offers to its customers)
  • StarkInfra Marketplace Page (Where our PixParcelado app will be placed for our customers to add to their StarkInfra workspace)
  • PixParcelado Dashboard -> Where the client can see the health of their credit wallet.

Target Market

Fintechs know well their customer's financials to provide credit to them at lower interest rates than other financial institutions.

Technologies

  • Frontend:
    • React.js + TypeScript
    • Deployment on Vercel
  • Backend:
    • API Development with Python+Flask
    • Database on Supabase (Firebase Open Source Alternative)
    • Deployment on Render (using Docker)
    • CI with Github Actions (Formatting with Black, Linting with Ruff and Testing with Pytest)

Database Schema

SplitPayments:

  • split_payment_id: Unique identifier for each split payment
  • original_amount: The original amount of the purchase
  • interest_rate: The interest rate charged on the split payment
  • due_date: The due date for the split payment
  • status: Current status of the split - payment (e.g., pending, paid, overdue)
  • payment_method: The payment method used for the split payment (e.g., Pix)
  • final_user_id: ID of the customer making the split payment
  • client_id: ID of the StarkInfra user managing the split payment
  • created_at: Timestamp indicating when the split payment was created
  • total_amount: The total amount of the - split payment after applying interest

PaymentsTransactions:

  • transaction_id: Unique identifier for each payment transaction
  • split_payment_id: ID of the split payment associated with the transaction
  • amount: The amount of the payment transaction
  • status: Current status of the payment transaction (e.g., processing, completed, failed)
  • transaction_date: Timestamp indicating when the transaction took place
  • payment_method: The payment method used for the transaction (e.g., Pix)
  • client_id: ID of the StarkInfra user initiating the transaction
  • final_user_id: ID of the customer involved in the transaction
  • type: specifies if it's a down_payment or one of the split portions
  • due_date: due date for the transaction to be effective
  • qr_code_copy: Code for making transactions "Pix Copia e Cola"
  • qr_code_img_link: link for QR Code image generated stark_uuid: uuid for the transaction generated by Stark API

Clients (StarkInfra Clients):

  • client_id: Unique identifier for each StarkInfra user
  • name: Name of the user
  • email: Email address of the user
  • role: Role or position of the user within StarkInfra (e.g., admin, customer support)
  • created_at: Timestamp indicating when the user account was created

FinalUsers (Clients of Users):

  • final_user_id: Unique identifier for each customer
  • name: Name of the customer
  • email: Email address of the customer
  • final_user_document:
  • created_at: Timestamp indicating when the customer account was created
  • client_id: ID of the StarkInfra user associated with the customer