Hoofdmenu

API voor nieuwe uitgaande facturen

Gestart door Bert-Jan, 09 juni, 2011, 09:57:07

Vorige topic - Volgende topic

Bert-Jan

Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Juro

Mooi hoor.

Hiermee ga ik eens kijken of ik vanuit mijn eigen geschreven factuur programma de facturen en klanten in Acumulus kan krijgen.

Grt!

Bert-Jan

Laat me weten waar je tegenaan loopt.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

gos

Aaah, dat werkt. Kan nu hele bulken oude jaren importeren.
Voor relaties zou een update functie mooi zijn. Nu krijg je dubbele relaties.
GoSys computer service
www.gosys.nl

Bert-Jan

Als het emailadres al bestaat, wordt de relatie niet toegevoegd maar ook niet gewijzigd.

Zou het een idee zijn om default te wijzigen?
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

gos

Dat zou ideaal zijn. Ik kan dan namelijk synchroniseren op m\'n eigen computer.
De volgende velden mis ik ook nog in de API:
Relatietype
Aanhef
Fax
Kenmerk
GoSys computer service
www.gosys.nl

Bert-Jan

Goede suggesties!

Alleen wie heeft er tegenwoordig nog een fax?

Ik denk aan het veld:



0 = niet overschrijven, 1 = overschrijven. Default = 0
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

gos

Zit: er al in, dan ga ik het even proberen met een aantal proef adressen.
GoSys computer service
www.gosys.nl

Bert-Jan

Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

gos

Sommige relaties hebben geen mail adres, daarom kreeg ik dubbele.
Valt dit op te vangen ? Misschien iets met isEmpty(email) dan kijken naar fullname of companyname1
GoSys computer service
www.gosys.nl

Bert-Jan

Dat is tricky.

Van Klusbedrijf De Vries bestaan er misschien wel 2000.

Stel je voor dat er per ongeluk data wordt overschreven. Ben je je data kwijt.

Mij lijkt het email-adres nog een redelijk veilige \"sleutel\"
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

gos

En jullie eigen interne klantnummer opnemen in de relatie export zodat ik deze weer kan gebruiken in de XML?
GoSys computer service
www.gosys.nl

Bert-Jan

Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Remco C.

Super, ben erg blij met de api   :D  :D  :D  :D  :D
ik ga morgen mijn hooks schrijven.

een paar kleine dingetjes die ik graag zou willen zien:
1. (zoals eerder aangegeven hierboven) een update functie voor de relaties
2. een update voor de factuur zodat als de mensen in mijn online betaal systeem hebben betaald ik dit kan doorzetten naar accumulus
3. Relatie type idd
5. graag zou ik zien dat de optie code naam/code/password wordt vervangen door een hash md5() van die 3 zodat niet het wachtwoord plain text in de xml staat.  zeker als dit niet via ssl kan

ik kom vast nog wel op een aantal andere zaken, maar het is een geweldige stap zeker om mee te beginnen.

Bert-Jan

1. (zoals eerder aangegeven hierboven) een update functie voor de relaties

Ben ik mee bezig.

2. een update voor de factuur zodat als de mensen in mijn online betaal systeem hebben betaald ik dit kan doorzetten naar accumulus

Dat zou zoiets moeten worden als update_invoice.php

3. Relatie type idd

Zit er nu in.

4. bij de factuur op welke rekening dit is betaald bijvoorbeeld

Zat er al in (accountnumber).

5. graag zou ik zien dat de optie code naam/code/password  wordt vervangen door een hash md5() van die 3 zodat niet het wachtwoord plain text in de xml staat.  zeker als dit niet via ssl kan

Het gaat via ssl als je zelf het bestand ook via ssl bereikbaar maakt. Kies anders POST.

Relatietype
Aanhef
Fax
Kenmerk

Zitten er nu in. Zie website.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Bert-Jan

Houd er nog even rekening mee dat e.e.a. nog kan wijzigen naar aanleiding van jullie suggesties.

Houd dit draadje in de gaten!
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Remco C.

bert-Jan,

Je bent nog sneller dan ik kan typen :)
Nog even een complimentje over de documentatie die is erg duidelijk, zelfs ik snap het
super.

met ssl bedoelde ik niet de post, maar het ophalen.  voorlopig is de post voor mij voldoende  :)

Bert-Jan

Thanks.  :)

Als je jouw XML file op een https://-locatie plaatst, is het versleuteld. Als je http:// kiest niet. Het bestand wordt opgehaald met Curl.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Remco C.

Ik bedenk me net iets,
wellicht is het een idee
een test modus.   zodat je alles kan testen en dat je dan in de email laat weten of alles goed is geparsed zodat het niet direct wordt opgeslagen.
soort ontwikkel modus

gr,

Bert-Jan

Heb ik aan gedacht.

Zal eens kijken.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Bert-Jan

Vraag aan jullie!

Op dit moment wordt een eventueel door Acumulus gegeneerd factuurnummer teruggegeven als simpele string.

20110293

Mits return = 1.

Is het verstandig om dat in XML te zetten?


   20110293


Voor mogelijke uitbreiding in de toekomst?
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Remco C.

zou ik zeker doen om output in xml te zetten.
Wat is het volgende wat je terug wilt geven?

XMLOK01
Invoice added for customer ......   with total amount of .....
1
2

    20119902
    3293.22
    4



Waar je ook naartoe kan werken is één api call voor alle zaken eventueel versienummer, dan kan jij 2 api\'s naast elkaar laten draaien zegmaar.
makkelijk bij het ontwikkelen ; andere file includen bij andere versienummer ed.


   ADD_INVOICE
        1
   1.0
   
                 
                 
                 
   

Bert-Jan

OK, goede tips.

Ik probeer het wel allemaal zo simpel mogelijk te houden.  :)

Het moet in de basis goed werken en makkelijk in te bouwen zijn.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Remco C.

het laatste idee wat mij te binnenschiet voordat ik op mijn bed duik :P
iets wat ik niet zal gaan gebruiken maar andere wellicht vraag naar hebben
acties nadat de factuur is ingebracht,  vb automatisch een factuur e-mailen aan de klant,
0

truste ;)

Bert-Jan

Hey Linux!

Heel goed.

Tja, er is veel mogelijk. We gaan eerst de basis goed maken. Welterusten!
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Remco

Hoi bert-jan,
enig idee wanneer je aan de api voor update invoice gaat werken?
ik vraag dit omdat mijn facturatie programma  2 soorten facturen maakt, 1 automatisch gegenereerde en via de admin interface,
de laatste maakt eerst de factuur aan en voegt daarna elke factuur regel in via update.
ik kan er een systeem omheen bouwen, maar het zou zonde zijn als de update functie binnen korte tijd geregeld is
gr.

Bert-Jan

Hoi Remco,

Ik wil eerst even de overwriteifexists afmaken voor de relatie.

Begrijp ik het goed dat bij een update invoice maar twee nieuwe waarden zijn:

1. de paymentstatus wordt 1;
2. de Paymentdate wordt de betaaldatum.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Remco C.

Ik gebruik WHMCS als management systeem voor website hosting ed.
alleen als ik via de admin interface een factuur aanmaak doet hij dit direct zonder factuurregels  ( daar is een action hook voor )
daarna update hij de factuur met regels. (ook een hook voor) maar niet om het te finalizen zeg maar. dus ik kan nier aangeven wanneer de factuur klaar is.
Als de factuur perodiek of automatisch bij een order voor wordt aangemaakt dan is dat probleem er niet( ze hebben een hook alvorens het emailen van de factuur of erna )
om de 1e optie te gebruiken heb ik wat trucjes in gedachte:
1.)  ik hou een tabel bij met de wijzigingen en maak een cronjob die de facturen elke nacht controleert en indien nodig naar de api stuurt.
2.)  ik maak een aparte module en doe het handmatig.
kortom lekker handig  maar kom ik wel overheen  hahahaha

de 2 payment statussen en op welke rekening zijn ook opties die ik zou willen updaten. wink   (heeft nog even geen haast wat mij betreft)



Als er mensen geïnteresseerd zijn in een api koppeling voor WHMCS laat het dan even weten dan kan ik jullie hier op de hoogte houden.
en een download ergens plaatsen.


p.s. Bert-Jan  je mag het account Remco weggooien,  ik zag dat ik deze perongeluk gebruikte,  wellicht had ik hem in een verleden aangemaakt.

Bert-Jan



is nu ingebouwd. Zie website.

Als jullie ergens tegenaan lopen, hoor ik dat graag.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Bert-Jan

De POST-variant is gewijzigd. Geen base64_encode meer, maar urlencode.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Bert-Jan

Ik zag dat de betaaldatum (paymentdate) nog niet goed werd gezet. Kijk dit anders even na bij het tabblad Saldo van de boeking.

Is nu opgelost.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Remco C.

hoi Bert-jan

ik zie 2 verschillende ur\'l\'s in je voorbeeld.

ik heb een voorbeeld waarbij de output in een string wordt gezet en er wordt een timeout toegevoegd.


$xml_string = urlencode($xml_string);
$url = \"https://www.sielsystems.nl/acumulus/api/add_invoice.php\";
$ch = curl_init();   //Initialize
curl_setopt($ch, CURLOPT_URL, $url);  //Set url
curl_setopt($ch, CURLOPT_POST, 1);   //Regular post
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);  //Return a var
curl_setopt($ch, CURLOPT_TIMEOUT, 10);      // 10sec time out  
curl_setopt($ch, CURLOPT_POSTFIELDS, \"xmlstring=$xml_string\");    //Add fields to post
$result = curl_exec($ch); // execute the post

// Check for errors
if(curl_errno($ch))
{
    Die(\'Curl error: \' . curl_error($ch));
}
curl_close($ch);   //Close and Free
echo $result; //output result

?>

Bert-Jan

Dankje. Ik had de code van de testserver geplakt.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Bert-Jan

Er is nu een XML respons gemaakt.

Er wordt nu altijd een respons gegeven.

http://www.siel.nl/api.php#respons
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Bert-Jan

Je kunt nu een factuur met de API opslaan als een tijdelijk opgeslagen factuur.

1

http://www.siel.nl/api.php#generating_xml
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

mbuist

Hoe zit het dan met de factuur layout. Ik heb 5 shops draaien op oscommerce en die wil ik strax via de api laten verlopen. Acumulus doet de factuurnummering dus die moet je leeglaten. Mijn shops hebben allemaal een eigenfactuurnummering maar die is niet van belang.

Alles is me duidelijk alleen elke shop heeft een andere layout van factuur in acumulus.

Nu typ ik de factuur dus over in acumulus en zet er de juiste layout bij (alleen logo is anders).

Mijn idee is om elke dag een cronjob te laten lopen op alle 5 de sites die de xml aanmaken en vervolgens het in acumulus te verwerken. Zo hou ikd e datums van alle shops ook lekker bijelkaar in de nummering.

Bert-Jan

Je kunt de naam van de gewenste template meegeven. Dan wordt die gekozen.

De naam moet dan wel precies goed gespeld zijn. Als er geen template wordt gevonden met de opgegeven naam, wordt de eerste gekozen.



template (factuursjabloon)
non mandatory
If ommited, first template in account will be selected. Lookup on string comparison.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Remco C.

Hoi Bert-Jan,
ik heb er even een tijdje uitgelegen maar ga opnieuw beginnen met mijn api.
de vraag die ik heb, ik had hem al een tijdje geleden gepost in dit topic, maar wil het even zeker weten, ivm met de manier waarop ik mijn api ga maken.

Werkt    ook voor een factuur?  of alleen voor de contacts

gr.

Bert-Jan

Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Remco C.

Ah jammer, staat het op de planning?

Bert-Jan

Kun je een situatie schetsen waarin dat nodig is?
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Remco C.

Hoi Bert-Jan,  een voorbeeld.
Ik heb een facturatie systeem/webshop maar als mensen kiezen om een bedrag over te maken per bank of betalen dan is het lastig om op 2 plaatsen aan te geven dat er betaald is. maar je wil wel graag weten wat er nog binnen gaat komen.
de facturatie en email en facturen versturen gebeurt dus in de webshop en niet vanuit acumulus.
dus ik zou graag de factuur maken nadat hij is aangemaakt in de webshop en dan updaten als deze is betaald

en 2.
maar das meer een makkelijke manier voor mij ;)
ik gebruik whmcs, deze heeft een aantal action hooks die ik kan gebruiken (code is ioncube beveiligd) daar kan je handmatig ook een factuur aanmaken. het probleem is dan dat er geen hook is die je kan gebruiken als de factuur helemaal klaar is.  hij heeft 2 hooks  1.  Als de factuur wordt aangemaakt (dit is zonder factuur regels)  en een action hook op update total amount  een update per factuur regel.   in dit geval kan ik de factuur maken en dan per factuur regel updaten.

De laatste optie die ik heb is de factuur pas te maken in acumuls nadat hij is betaald.  maar ik heb liever ook de verzonden onbetaalde facturen in mijn boekhouding.
Ik hoop dat je het een beetje kan volgen
De actionhooks van whmcs staan hier.  mocht je interesse hebben http://docs.whmcs.com/Hooks:Invoicing

Marco

Citaat van: Bert-JanEr is nu een API voor uitgaande facturen.

http://www.siel.nl/api.php

Hoi Bert-Jan,

Ik ben bezig met het koppelen van mijn osCommerce webshop via de API.

Ik ben zover dat ik de xml file lokaal kan opslaan, via FTP heb ik hem online gezet, maar hoe kan ik die nu versturen naar acumulus?

Groeten,
Marco

Bert-Jan

Je roept de volgende link aan:
https://www.sielsystems.nl/acumulus/api/add_invoice.php?
xmlfile=url

waarbij de laatste letters url worden vervangen voor de complete url naar jouw bestand.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Marco

Citaat van: Bert-Janxmlfile=url

Bedankt voor je antwoord, zelfs op zondag.

Ik krijg nu de volgende error terug: 010420authentification failed

Ik gebruik mijn login van acumulus met mijn contractcode (dit is nog een proefaccount).

Groeten,
Marco

Bert-Jan

Mail me anders even op klantenservice@acumulus.nl
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Marco

Citaat van: Bert-JanMail me anders even op klantenservice@acumulus.nl

Werkt nu perfect, bedankt.

Remco C.

Hoi Bert-Jan,

ik heb een vraag is het mogelijk Letters op te nemen in de factuurnummer als ik deze via de api maak?
vb  Factuurnr  RL2011-00012   ?
of moeten het alleen nummers zijn?

Bert-Jan

Mmm, goeie vraag. Je kunt het wel meesturen maar het factuurnummer wordt opgeslagen in een numeriek veld. Dit was noodzakelijk om foutloos een volgend hoger nummer te berekenen. Het factuurnummer wordt daarnaast ook in een alphanumeriek veld opgeslagen bij de omschrijving.
Bert-Jan Wiegeraad (klantenservice@acumulus.nl)

Karen Töning

Wettelijk mag een factuurnummer alleen uit cijfers bestaan. Er mogen geen andere tekens of spaties in staan.