2010-11-27 2 views
3

Je travaille dans QBXML et j'essaie d'appliquer un paiement à une facture spécifique dans un ReceivePaymentAddRq. Je reçois le, apparemment assez commun, "Objet TxnID spécifié dans la demande ne peut pas être trouvé". La plupart des autres forums sur ce sujet sont résolus une fois que le champ ARAccountRef est ajouté à la requête, cela n'a pas semblé faire de différence pour moi.ReceivePaymentAddRq dans QBXML - L'objet TxnID spécifié dans la requête est introuvable

J'ai interrogé la facture pour TxnID 68B4-1290718970 et vérifié les éléments suivants:

  • ARAccountRef ListID Ma demande correspond à ce qui est dans le QueryRet
  • CustomerRef ListID Ma demande correspond à ce qui est dans le QueryRet

Ma demande XML est ci-dessous. Qu'est-ce que je rate?

Merci

<QBXML> 
    <QBXMLMsgsRq onError = "continueOnError"> 
    <ReceivePaymentAddRq requestID = "0"> 
     <ReceivePaymentAdd> 
      <CustomerRef> 
       <ListID>80000111-1286514304</ListID> 
      </CustomerRef> 
      <ARAccountRef> 
       <ListID>80000091-1273734429</ListID> 
      </ARAccountRef> 
      <TxnDate>2010-11-10</TxnDate> 
      <RefNumber>2999  </RefNumber> 
      <TotalAmount>15.95</TotalAmount> 
      <PaymentMethodRef> 
       <ListID>80000002-1273560098</ListID> 
      </PaymentMethodRef> 
      <Memo>_32T0DE94J</Memo> 
      <DepositToAccountRef> 
       <ListID>80000090-1273734138</ListID> 
      </DepositToAccountRef> 
      <AppliedToTxnAdd> 
       <TxnID>68B4-1290718970</TxnID> 
       <PaymentAmount>15.95</PaymentAmount> 
      </AppliedToTxnAdd> 
     </ReceivePaymentAdd> 
    </ReceivePaymentAddRq> 
    </QBXMLMsgsRq> 
</QBXML> 

Répondre

3

Pour toute personne de référence d'autre, a déjà répondu à la question ici:

Mis à jour réponse maintenant que Intuit ont descendu leur propres forums:

Il y a quelques raisons communes pour l'erreur que vous voyez:

  • L'objet que vous faites référence (68B4-1290718970) pourrait ne pas exister. Êtes-vous 100% positif cette transaction existe?

  • L'objet auquel vous faites référence n'est peut-être pas quelque chose pour lequel vous pouvez effectuer un paiement. Vous appliquez des paiements aux factures. L'objet est-il une facture?

  • L'objet auquel vous faites référence n'a peut-être pas la même devise que le paiement. Utilisez-vous plusieurs devises avec QuickBooks, et les devises correspondent-elles?

  • L'objet dont vous parlez n'a peut-être pas de compte A/R correspondant au paiement. Ceci est particulièrement courant si vous avez plusieurs comptes A/R dans QuickBooks, et que vous ne spécifiez pas explicitement quel compte client utiliser lors de la création de la facture ou du paiement. Les comptes A/R de la facture et du paiement correspondent-ils?

  • L'objet auquel vous faites référence n'a peut-être pas de solde ouvert (par exemple, il peut déjà être payé). Est-ce que l'objet dont vous parlez a un solde d'au moins 15,95? (le montant que vous avez essayé d'appliquer)

+0

La liaison ne fonctionne pas. –

+0

Grande info. Mon problème était # 4, ne spécifiant pas le compte AR explicitement. –

+0

Dans mon cas, un bogue dans le code essayait de lier un crédit à une facture sous le mauvais nom de l'entreprise. Ce que je prends de ce (basé sur ce qui est écrit ci-dessus) est que QuickBooks effectue une requête de type WHERE en interne avec l'ID de transaction comme l'une des conditions. Quelque chose comme: WHERE txnID =? ET société =? ET compte =?... - si l'une de ces conditions échoue, QuickBooks le blâme sur l'objet qui n'existe pas du tout, alors qu'il peut bien exister mais une autre condition de requête échoue. C'est pourquoi InvoiceQuery démontre que l'objet existe alors que ReceivePaymentAdd est catégorique. –

Questions connexes