2013-06-27 3 views
1

QuickBooks 온라인 (Qbo) API를 사용하여 수표 발행을 도와주십시오. 나는 그 일을 시도했지만 "오류를 확인하는 상세 선의 오류 : 최소한 하나의 세부 선이 필요합니다."라는 오류 메시지가 항상 나타납니다. 샘플 코드는 아래에 있습니다. 수표를 어떻게 추가해야합니까?Quickbooks API로 수표 만들기

    Dim existingChk = New Qbo.Check() 
        Dim existingChks = commonService.FindAll(existingChk, 1, 10).ToList() 

        Dim payment = New Qbo.Payment() 
        Dim payments = commonService.FindAll(payment, 1, 10).ToList() 

        Dim qboCheck = New Intuit.Ipp.Data.Qbo.CheckHeader() 
        Dim bank = New Intuit.Ipp.Data.Qbo.Account() 
        bank.Type = Intuit.Ipp.Data.Qbo.AccountTypeEnum.Asset 
        Dim Banks = commonService.FindAll(bank, 1, 100).ToList() 
        Dim accountId As New Qbo.IdType 
        For Each bnk As Intuit.Ipp.Data.Qbo.Account In Banks 
         If bnk.Name = "Test Bank" Then 
          accountId = bnk.Id 
         End If 
        Next 
        qboCheck.BankAccountId = accountId 
        qboCheck.BankAccountName = "Test Bank" 
        qboCheck.TotalAmt = 20.0 
        qboCheck.Currency = Intuit.Ipp.Data.Qbo.currencyCode.USD 
        qboCheck.TxnId = payments(0).Id 
        Dim qboCustomer = New Intuit.Ipp.Data.Qbo.Customer() 
        Dim qboCustomers = commonService.FindAll(qboCustomer, 1, 10).ToList() 
        For Each cus As Intuit.Ipp.Data.Qbo.Customer In qboCustomers 
         If cus.Name.Contains("Customer1") Then 
          qboCheck.EntityId = cus.Id 
         End If 
        Next 
        qboCheck.EntityType = Qbo.EntityTypeEnum.Customer 

        Dim check = New Intuit.Ipp.Data.Qbo.Check() 
        check.Header = qboCheck 
        check.Id = New Qbo.IdType 
        check.Id.idDomain = existingChks(0).Id.idDomain 
        check.Id.Value = CInt(existingChks(0).Id.Value) + 1 

        Dim resultCheck As Qbo.Check = TryCast(commonService.Add(check), Qbo.Check) 
+0

http://stackoverflow.com/questions/17358642/how-to-add-accountid-or-itemid-when-creating-checks-in- quickbooks? rq = 1 –

답변

0

.net devkit (나는 100 % 확실하지 않음)의 버그처럼 보입니다. JavaDocs에서는 accountId와 itemId 둘 다 LinePurchase (PFB 스냅 샷)에서 상속 받았다고 말합니다. 그러나 .net devkit에서는 LinePurchase 나 LineBase에서 필드를 볼 수 없습니다.

의 JavaDoc의 참조 - http://developer-static.intuit.com/SDKDocs/QBV2Doc/ipp-java-devkit-2.0.10-SNAPSHOT-javadoc/

enter image description here

API 엔드 포인트가 벌금을 노력하고 있습니다.

https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/v2/0400_quickbooks_online/check#Sample_Create_Request_XML

<?xml version="1.0" encoding="utf-8" ?> 
<Check xmlns:ns2="http://www.intuit.com/sb/cdm/qbo" xmlns="http://www.intuit.com/sb/cdm/v2"> 
    <Header> 
     <TxnDate>2013-08-09</TxnDate> 
     <BankAccountId>44</BankAccountId> 
     <EntityId>2</EntityId> 
    </Header> 
    <Line> 
     <Desc>Hard Disks</Desc> 
     <Amount>500</Amount> 
     <BillableStatus>NotBillable</BillableStatus> 
     <ItemId>4</ItemId> 
     <Qty>10</Qty> 
     <UnitPrice>50</UnitPrice> 
    </Line> 
</Check> 

PN -

<BankAccountId>

:이 계정은 '확인'형식이어야합니다.

<ItemId> : 항목에 'ExpenseAccountRef'태그가 있어야합니다.

ApiExplorer 도구를 사용하여이 유스 케이스를 테스트 할 수 있습니다.

링크 - https://developer.intuit.com/apiexplorer?apiname=V2QBO

내가 월요일에이 사용하는 그물의 devkit를 시도하고 .NET의 devkit에서 문제를 경우 확인합니다 가능합니다.

감사합니다.

+0

답장을 보내 주셔서 감사합니다.이. NET 개발 키트는 우리의 응용 프로그램에 사용하기 위해 신뢰할 수 있습니까? 이 SDK를 사용하지 않고 API에 통합 할 수있는 방법이 있습니까? – user2523280

+0

Devkit이 좋습니다. items-> Itemchoicetype1 열거 형을 사용해야합니다. ItemsElementName은 ItemsChoiceType1 []을 반환합니다. Ref - http://stackoverflow.com/questions/17358642/how-to-add-accountid-or-itemid-when-creating-checks-in-quickbooks?rq=1 끝점 정보 IPP 문서에서 사용할 수 있습니다. 따라서 devkit을 사용하지 않고이 API를 확실히 호출 할 수 있습니다. 일부 Restclient를 사용해야하며 응답 XML을 구문 분석해야합니다. (Devkit은 훨씬 더 쉽습니다) –

0

BillpaymentHeader에 대해 C#의 의사 코드를 추가합니다.

마찬가지로 당신은 CheckLine을 위해 그것을 사용할 수 있습니다

billheader.ItemsElementName = new ItemsChoiceType[1]; 
    billheader.ItemsElementName[0] = ItemsChoiceType.BankAccountId; 
    billheader.Items = new object[1]; 
    billheader.Items[0] = new Intuit.Ipp.Data.Qbo.IdType() { idDomain = Intuit.Ipp.Data.Qbo.idDomainEnum.QBO, Value = "1" }; 

참조 표시 How to add AccountID or ItemID when creating Checks in QuickBooks

0

당신이 법안이 있다면 이미 당신은 단순히 수표를 만들 billpayment API를 사용할 수 있습니다. URL : https://quickbooks.api.intuit.com/v3/company/111111111111/billpayment?minorversion=4

요청 JSON 데이터 :

{ 
    "VendorRef": { 
    "value": "1", 
    "name": "vendor_name" 
    }, 
    "PayType": "Check", 
    "CheckPayment": { 
    "BankAccountRef": { 
     "value": "1", 
     "name": "Test Account" 
    } 
    }, 
    "TotalAmt": 100.00, 
    "PrivateNote": "Acct. 1JK90", 
    "Line": [ 
    { 
     "Amount": 100.00, 
     "LinkedTxn": [ 
     { 
      "TxnId": "1", 
      "TxnType": "Bill" 
     } 
     ] 
    } 
    ] 
}