Как добавить счет-фактуру в Quickbooks, используя их API с Python?

#python #api #quickbooks

#python #API #quickbooks

Вопрос:

Интересно, как я могу добавить счет-фактуру через Quickbooks API v3 с использованием Python. Скрипт с минимальными требованиями был бы оценен.

Я новичок в API, поэтому мне интересно, смогу ли я написать простой скрипт без запуска сервера для загрузки счетов-фактур в QuickBooks. Если нет, я думаю, мне следует использовать Django или Flask правильно?

Заранее благодарю вас.

Ответ №1:

вот простой пример того, как создать однострочный счет-фактуру только с обязательными полями.

 from quickbooks.objects import (Invoice, 
                                SalesItemLineDetail, 
                                SalesItemLine)

customer_ref = Ref()
customer_ref.value = 123
customer_ref.name = 'Ivan Petrov'
customer_ref.type = 'Customer'
# or customer_ref = Customer.get(123, qb=client).to_ref()

line_detail = SalesItemLineDetail()
line_detail.UnitPrice = 100  # in dollars
line_detail.Qty = 1  # quantity can be decimal

line = SalesItemLine()
line.Amount = 100  # in dollars
line.SalesItemLineDetail = line_detail

invoice = Invoice()
invoice.CustomerRef = customer_ref
invoice.Line = [line]

client = QuickBooks(...)

invoice.save(qb=client)
  

перейдите по этой ссылке для получения дополнительных объяснений www.github.com/ej2/python-quickbooks/issues/103

Ответ №2:

Вы можете использовать python-quickbooks library.

Есть также примеры, как его использовать:

 from intuitlib.client import AuthClient
from quickbooks import QuickBooks

auth_client = AuthClient(
    client_id='CLIENT_ID',
    client_secret='CLIENT_SECRET',
    environment='sandbox',
    redirect_uri='http://localhost:8000/callback',
)

client = QuickBooks(
    auth_client=auth_client,
    refresh_token='REFRESH_TOKEN',
    company_id='COMPANY_ID',
)

customer = Customer()
customer.CompanyName = "Test Company"
customer.save(qb=client)

  

Комментарии:

1. @lasha-dolenjashvili вы пытались использовать этот пример?

2. где взять токен обновления и идентификатор компании?

3. @Md.TanvirRaihan когда вы завершите поток OAuth, вы получите a auth_code , который следует преобразовать в эти токены (метод get_bearer_token() ) и сохранить для последующего использования.

4. @Md.TanvirRaihan похоже, что это не связано с текущим вопросом, пожалуйста, создайте новый и не стесняйтесь отправлять ссылку.

Ответ №3:

Для счета-фактуры у вас должен быть клиент, который будет платить, счета за расходы и доходы, а также товар или услуга, которые предоставляются клиенту.

 # client is your quickbook object
customer = Customer()
customer.CompanyName = "Test221wq Company"
customer.DisplayName = "Test3wrq1 Owner"
customer.PrimaryEmailAddr = EmailAddress()
customer.PrimaryEmailAddr.Address = "test1wq3@email.com"
customer.save(qb=client)
print(customer.__dict__)

income_account = Account()
income_account.Name = "Test3w1 Account"
income_account.AccountSubType = "ServiceFeeIncome"
income_account.CurrentBalanceWithSubAccounts = 500
income_account.save(qb=client)
print(income_account.__dict__)

expense_account = Account()
expense_account.Name = "Test4 Account"
expense_account.AccountSubType = "CostOfLabor"
expense_account.CurrentBalanceWithSubAccounts = 1000
expense_account.save(qb=client)
print(expense_account.__dict__)


item = Item()
item.Name = "Test Service Item"
item.IncomeAccountRef = income_account.to_ref()
item.ItemCategoryType = "Service"
item.ExpenseAccountRef = expense_account.to_ref()
item.Type = "Service"
item.save(qb=client)
print(item.__dict__)


line = SalesItemLine()
line.LineNum = 1
line.Description = "fieldworkers"
line.Amount = 100
line.SalesItemLineDetail = SalesItemLineDetail()
line.SalesItemLineDetail.ItemRef = item.to_ref()


invoice = Invoice()
invoice.CustomerRef = customer.to_ref()
invoice.Line.append(line)

invoice.save(qb=client)

print(invoice.__dict__)
  

Этого достаточно для создания счета-фактуры.