Hoofdmenu
-menu

Toon bijdragen

Deze sectie stelt je in staat om alle bijdragen van dit lid te bekijken. Je kunt alleen de bijdragen zien waar je op dit moment toegang toe hebt.

Toon bijdragen-menu

Berichten - JanD

#1
Webkoppelingen / Re: Call API from Python
10 november, 2020, 11:35:57
Hi Guido,

Bedankt voor de feedback. Om alle mogelijke encoding problemen uit te sluiten heb ik de clean xmlstring met alleen "@" in email adres  vervangen door "%40" in de chrome webbrowser en als volgt meegestuurd:


https://api.sielsystems.nl/acumulus/stable/picklists/picklist_accounts.php?xmlstring=<myxml><contract><contractcode>....


Net zoals in mijn python tests gaat het met bepaalde resources goed en geven de andere resources een foutmelding. De xmlstring die ik instuur is voor allemaal exact hetzelfde. Hieronder een overzicht de resultaten van een aantal resources:

picklist_accounts.php - werkt zoals verwacht

contact_get.php - werkt zoals verwacht als ik een correct contactid meegeef.

invoice_get_next_number.php  -   Error - 442 EXC-ZK03B Error - Not Implemented - Please use the xmlstring or xmlfile approach or contact Acumulus Support.

contacts_list.php - Error  - 403  KJ0B51AFP - No message available


Is er een verschil tussen de resources. Heeft het misschien te maken met de Connector informatie?  Die heb ik niet ingevuld omdat ik die niet gebruik. 


Waar kan ik een lijst vinden van de error codes en de codetags?


Met vriendelijke groeten, Jan
#2
Webkoppelingen / Re: Invoice/factuur token
09 november, 2020, 21:03:11
Dank je Guido. Ik ga er mee aan de gang als ik het toegangs-probleem opgelost heb. :)
#3
Webkoppelingen / Re: Call API from Python
09 november, 2020, 20:57:13
Bedankt Guido!

Ik ben weer wat verder gekomen. Het lukt me nu om een response te krijgen op endpoint  picklist_accounts.php maar zowel invoice_get_next_number.php als contacts_list.php geven foutmeldingen. Hieronder de code met de drie endpoints met twee uitgecommentarieerd. Dus exact dezelfde xmlstring gestuurd naar de drie endpoints geeft verschillende resultaten.  In de code-blokken eronder de response van de drie endpoints.


import requests

def fixed_xml_body_as_string():
    return """
    <?xml version='1.0' encoding='utf-8'?>
    <myxml>
        <contract>
            <contractcode>999999</contractcode>
            <username>API-99999</username>
            <password>9999999</password>
            <emailonerror>999999%40gmail.com</emailonerror>
            <emailonwarning>999999%40gmail.com</emailonwarning>
        </contract>
        <format>XML</format>
        <testmode>0</testmode>
        <lang>en</lang>
    </myxml>
    """

url="https://api.sielsystems.nl/acumulus/stable/picklists/picklist_accounts.php"
#url="https://api.sielsystems.nl/acumulus/stable/invoices/invoice_get_next_number.php"
#url="https://api.sielsystems.nl/acumulus/stable/contacts/contacts_list.php"

params = {'xmlstring' : fixed_xml_body_as_string()}

r = requests.post(url, params = params)

print (r.text)



picklist_accounts.php geeft volgende response zonder fouten


<?xml version="1.0" encoding="UTF-8"?>
<response><accounts><account><accountid>999999</accountid><accountnumber>99999999</accountnumber><accountdescription></accountdescription><accounttypeid>1</accounttypeid></account><account><accountid>175774</accountid><accountnumber>99999999</accountnumber><accountdescription>Deposito</accountdescription><accounttypeid>1</accounttypeid></account><account><accountid>175775</accountid><accountnumber>Zakelijke Credit Card</accountnumber><accountdescription></accountdescription><accounttypeid>1</accounttypeid></account><account><accountid>175772</accountid><accountnumber>Kas</accountnumber><accountdescription></accountdescription><accounttypeid>1</accounttypeid></account><account><accountid>175776</accountid><accountnumber>Ingenico</accountnumber><accountdescription></accountdescription><accounttypeid>1</accounttypeid></account><account><accountid>175778</accountid><accountnumber>Uitgekeerd dividend</accountnumber><accountdescription></accountdescription><accounttypeid>3</accounttypeid></account><account><accountid>175777</accountid><accountnumber>Rekening Courant - DGA</accountnumber><accountdescription>Josien Brandt</accountdescription><accounttypeid>1</accounttypeid></account><account><accountid>175779</accountid><accountnumber>Winstreserves vorig boekjaar</accountnumber><accountdescription></accountdescription><accounttypeid>4</accounttypeid></account><account><accountid>175780</accountid><accountnumber>VPB-afdrachten</accountnumber><accountdescription></accountdescription><accounttypeid>5</accounttypeid></account><account><accountid>175781</accountid><accountnumber>Borg Laan Copes 83 - Erven Ruys</accountnumber><accountdescription></accountdescription><accounttypeid>2</accounttypeid></account><account><accountid>175782</accountid><accountnumber>Vooruitbetaald</accountnumber><accountdescription></accountdescription><accounttypeid>2</accounttypeid></account><account><accountid>175783</accountid><accountnumber>Vooruitontvangen omzet</accountnumber><accountdescription></accountdescription><accounttypeid>4</accounttypeid></account><account><accountid>175784</accountid><accountnumber>Nog te betalen bedragen</accountnumber><accountdescription></accountdescription><accounttypeid>4</accounttypeid></account><account><accountid>177038</accountid><accountnumber>Memoriaal</accountnumber><accountdescription>geannuleerde cursussen etc</accountdescription><accounttypeid>2</accounttypeid></account><account><accountid>177041</accountid><accountnumber>Borg KG62 - Padox BV</accountnumber><accountdescription></accountdescription><accounttypeid>2</accounttypeid></account><account><accountid>189678</accountid><accountnumber>Bestedingsruimte Credit Card</accountnumber><accountdescription></accountdescription><accounttypeid>1</accounttypeid></account><account><accountid>189679</accountid><accountnumber>Rekening Courant - Nieuw Cruysenborch BV</accountnumber><accountdescription>Holding</accountdescription><accounttypeid>4</accounttypeid></account><account><accountid>194332</accountid><accountnumber>Borg KG62 - ontvangen</accountnumber><accountdescription>Taxateurs - Blitz</accountdescription><accounttypeid>4</accounttypeid></account><account><accountid>194852</accountid><accountnumber>Aandelenkapitaal</accountnumber><accountdescription></accountdescription><accounttypeid>3</accounttypeid></account><account><accountid>195097</accountid><accountnumber>Nog te ontvangen</accountnumber><accountdescription></accountdescription><accounttypeid>2</accounttypeid></account><account><accountid>195649</accountid><accountnumber>Deelbetaling debiteuren</accountnumber><accountdescription></accountdescription><accounttypeid>2</accounttypeid></account><account><accountid>-1</accountid><accountnumber>Account not part of Acumulus</accountnumber><accountdescription></accountdescription><accounttypeid></accounttypeid></account></accounts><errors><count_errors>0</count_errors></errors>
<warnings><count_warnings>0</count_warnings></warnings>
<status>0</status></response>



invoice_get_next_number.php  geeft volgende response


<?xml version="1.0" encoding="UTF-8"?><response><errors><error><code>442</code><codetag>EXC-ZK03B</codetag><message>Error - Not Implemented - Please use the xmlstring or xmlfile approach or contact Acumulus Support.</message></error><count_errors>1</count_errors></errors><status>1</status></response>



contacts_list.php  geeft volgende response


<?xml version="1.0" encoding="UTF-8"?>
<response><errors><error><code>403 Forbidden</code><codetag>KJ0B51AFP</codetag><message>No message available</message></error><count_errors>1</count_errors></errors>
<warnings><count_warnings>0</count_warnings></warnings>
<status>1</status></response>
#4
Webkoppelingen / Re: Call API from Python
09 november, 2020, 14:00:48
Dit is de code die niet werkt:

====

import urllib
import requests

url="https://api.sielsystems.nl/acumulus/stable/invoices/invoice_get_next_number.php"

xml="""<?xml version="1.0" encoding="UTF-8"?><myxml><contract><contractcode>####</contractcode>
       <username>######</username><password>#####</password><emailonerror>#####</emailonerror>
       <emailonwarning>######</emailonwarning></contract></myxml>"""
xml=urllib.parse.quote(xml)

headers = {'ContentType': 'application/x-www-form-urlencoded', 'ContentLength' : str(len(xml))}

r=requests.post(url, data=xml, headers=headers)

print (r.text)

====

En dit is de response:

<?xml version="1.0" encoding="UTF-8"?><response><errors><error><code>442</code><codetag>EXC-ZK03B</codetag><message>Error - Not Implemented - Please use the xmlstring or xmlfile approach or contact Acumulus Support.</message></error><count_errors>1</count_errors></errors><status>1</status></response>
#5
Webkoppelingen / Re: Invoice/factuur token
09 november, 2020, 10:43:20
Hartelijk dank voor de snelle reactie Guido.

Ik wil een interface maken naar ons leerlingadministratiesysteem. Daarin werken we alleen met een factuurnummer dat hetzelfde is als in Acumulus. We doen de upload van de facturen nu nog handmatig maar die wil ik nu via API gaan doen (zie andere post met vraag over python api calls) en dan ook de betaalstatus automatisch aanpassen als er betaald is. Het zou dus het handigst zijn als ik het zonder een entry-id of token zou kunnen doen.

Ik ga verder puzzelen.
.
#6
Webkoppelingen / Invoice/factuur token
08 november, 2020, 21:23:01
Hoe kom ik via de API achter de token van een factuur waarvan ik alleen het factuur nummer weet?

Groet, Jan
#7
Webkoppelingen / Call API from Python
08 november, 2020, 21:20:23
Ik wil de Acumulus API vanuit Python aanroepen maar krijg het door een gebrek aan ervaring en geschikte voorbeelden niet voor elkaar. Ik wil automatisch facturen naar Acumulus uploaden vanuit een SQL server database met alle factuur gegevens. Ik

Heeft iemand een werkend voorbeeld hoe ik de API kan aanroepen? 

Groet, Jan

p.s. Het zou handig zijn om voor de verschillende talen en methodes een code snippet te maken om snel van start te kunnen.