๐Ÿ“ฆ Petrus-Han / quickbooks_payments_dify_plugin

โ˜… 0 stars โ‘‚ 0 forks ๐Ÿ‘ 0 watching
๐Ÿ“ฅ Clone https://github.com/Petrus-Han/quickbooks_payments_dify_plugin.git
HTTPS git clone https://github.com/Petrus-Han/quickbooks_payments_dify_plugin.git
SSH git clone git@github.com:Petrus-Han/quickbooks_payments_dify_plugin.git
CLI gh repo clone Petrus-Han/quickbooks_payments_dify_plugin
Petrus Han Petrus Han Fix: Change all form fields from 'llm' to 'form' and add missing form fields 7257f33 6 days ago ๐Ÿ“ History
๐Ÿ“‚ main View all commits โ†’
๐Ÿ“ _assets
๐Ÿ“ provider
๐Ÿ“ tools
๐Ÿ“„ .gitignore
๐Ÿ“„ main.py
๐Ÿ“„ manifest.yaml
๐Ÿ“„ README.md
๐Ÿ“„ requirements.txt
๐Ÿ“„ README.md

QuickBooks Payments Plugin

QuickBooks Payments API integration for Dify, enabling secure payment processing for credit cards, debit cards, and bank accounts (ACH/eCheck).

Features

Payment Processing

  • Create Token - Tokenize credit card or bank account information securely
  • Create Charge - Process payments using payment tokens
  • Get Charge - Retrieve payment transaction details
  • Create Refund - Issue full or partial refunds

Bank Account Management

  • Create Bank Account - Save bank accounts for future ACH payments
  • Get Bank Accounts - List all saved bank accounts for a customer
  • Delete Bank Account - Remove bank accounts from customer profile

Authentication

This plugin uses OAuth 2.0 authentication with QuickBooks Payments API.

Required Scope: com.intuit.quickbooks.payment

Setup Steps

  • Register at Intuit Developer Portal
  • Create a QuickBooks Payments app
  • Obtain Client ID and Client Secret
  • Configure redirect URI in Dify
  • Select environment (Sandbox for testing, Production for live payments)

Usage

1. Tokenize Payment Method

First, create a secure token from credit card or bank account info:

Tool: create_token
Parameters:
  - payment_type: card
  - card_number: 4111111111111111
  - card_exp_month: 12
  - card_exp_year: 2026
  - card_cvc: 123
  - card_name: John Doe

2. Process Payment

Use the token to charge the payment:

Tool: create_charge
Parameters:
  - amount: "10.50"
  - token: <token_from_step_1>
  - currency: USD
  - capture: true
  - description: Payment for Invoice #1234

3. Issue Refund (if needed)

Tool: create_refund
Parameters:
  - charge_id: <charge_id_from_step_2>
  - amount: "10.50"
  - description: Customer requested refund

Testing

Sandbox Environment

Use these test credentials in sandbox mode:

Test Credit Cards:

  • Visa: 4111111111111111
  • Mastercard: 5105105105105100
  • Amex: 378282246310005
  • Discover: 6011111111111117
Test Bank Account:
  • Routing Number: 322079353
  • Account Number: Any 10-17 digits

Test Scenarios

  • Successful Charge: Use test card numbers above
  • Declined Card: Use amount 5.01
  • Insufficient Funds: Use amount 5.02

Important Notes

  • US Only: QuickBooks Payments API is only available in the United States
  • Token Expiration: Payment tokens expire after 15 minutes and are single-use only
  • PCI Compliance: Tokenization keeps you PCI DSS compliant - never store raw card data
  • Merchant Account: Requires a QuickBooks Payments merchant account

API Documentation

For complete API documentation, visit:

Security

  • All payment data is tokenized before transmission
  • OAuth 2.0 ensures secure API authentication
  • No sensitive payment data is stored in your system
  • Compliant with PCI DSS requirements

Support

For issues or questions:

Version

Current version: 0.1.0

License

This plugin is provided as-is for integration with Dify and QuickBooks Payments API.