XML - Faktura
- XML fakturaspecifikation
Opbygning
En DIBS email faktura består af fem dele:
1. Fakturainformation (invoice)
2. Kundeinformation (invoice, head)
3. Fakturaindhold (invoice, body)
4. Produktlinjer (invoice, body, pline)
5. Afsenderinformation (invoice, sender)
Hvor del 2-5 er en delmængde af nummer 1, og del 4 er en delmængde af 3. Som stillistisk XML kan det repræsenteres på følgende måde:
<invoice>
<head></head>
<body>
<pline></pline>
</body>
<sender></sender>
</invoice>
Hver enkelt del kan indeholde et antal felter, som er specificeret nedenfor. Sidst i dokumentet er vist et eksempel på en DIBS email faktura i XML-form.
Feltspecifikation
Fakturainformation
invoice, deal_id
Et unikt aftalenummer, der er tilknyttet enhver DIBS email-aftale. Nummeret bliver oplyst ved oprettelse af en DIBS email-aftale, og fremgår også af stamoplysningerne på DIBS email-websiderne (efter login). Aftalenummeret er et positivt heltal. Feltet er obligatorisk.
invoice, invoice_number
Et unikt fakturanummer, der unikt identificerer den aktuelle faktura. Fakturanummer er et positivt heltal (integer). Det er ikke muligt at oprette flere faktura med det samme fakturanummer. Feltet er obligatorisk.
invoice, order_number
Et unikt ordrenummer, der unikt identificerer den ordre som den aktuelle faktura, er tilknyttet. Ordrenummeret er en tegn-streng med en maksimumlængde på 30 karakterer. Det er ikke muligt at oprette flere fakturaer med det samme ordrenummer. Feltet er obligatorisk.
invoice, status_id
Den status, som fakturaen har/skal have. Status er et positivt heltal, og hver enkelt heltal repræsenterer et antal mulige status: 1) fakturaen er indtastet og gemt i DIBS email, men ikke afsendt, 2) fakturaen er afsendt til kunden (evt. også overforfalden), 3) fakturaen er betalt. Feltet er obligatorisk.
invoice, capture
En angivelse af, om betalingen (i det øjeblik at kunden gennemfører betalingen) skal trækkes med det samme, eller om betalingen først skal trækkes manuelt på et senere tidspunkt (via DIBS admin interfacet). Feltet indeholder et positivt heltal der repræsenterer en af to muligheder: 1) beløbet trækkes øjeblikkeligt, 2) beløbet skal trækkes manuelt. Feltet er valgfrits og hvis intet angives antages det implicit givet, at beløbet trækkes øjeblikkeligt (capture=1).
invoice, lang
Angivelse af sproget i fakturaen. Feltet er valgfrit, og medsendes det ikke bruges standard sproget for aftalen. Sprog forkortes med deres alfabetiske forkortelse, og foreløbig understøttes følgende sprog: "dk", "uk", "se" og "no".
invoice, design_template_id
Angiver fakturaens overordnede design. Feltet er valgfrits og medsendes det ikke bruges standard fakturadesign for aftalen.
Kundeinformation
invoice, head, customer_number
En unik tegnstreng på maksimum 20 karakterer til unik identifikation af en kunde. Feltet er obligatorisk.
invoice, head, email
Kundens emailadresse som tegnstreng med maksimumlængde på 70 karakterer. Feltet er obligatorisk.
invoice, head, company
Firmanavn hvis kunden er et firma. Tegnstreng med maksimumlængde på 50 karakterer.
invoice, head, cvr
Kundens SE/CVR nummer, hvis et sådant findes. Tegnstreng med en maksimumlængde på 20 karakterer.
invoice, head, first_name
Kundens fornavn som tegnstreng med maksimum 50 karakterer.
invoice, head, last_name
Kundens efternavn som tegnstreng med maksimum 50 karakterer.
invoice, head, adress
Kundens postadresse (gadenavn, nummer og salg) som tegnstreng med maksimum 50 karakterer.
invoice, head, zip_code
Kundens postnummer som tegnstreng med maksimum 10 karakterer.
invoice, head, town
Kundens bynavn som tegnstreng med maksimum 50 karakterer.
invoice, head, country
Kundens land som tegnstreng med maksimum 30 karakterer.
Fakturaindhold
invoice, body, invoice_date
Fakturadato angivet som et positivt heltal i UNIX tid (antal sekunder fra 1/1 1980 kl. 00:00). Feltet er obligatorisk.
invoice, body, respite
Betalingsfrist angivet som et positivt heltal i UNIX tid (antal sekunder fra 1/1 1980 kl. 00:00).
invoice, body, delivery_date
Forventet leveringsdato angivet som et positivt heltal i UNIX tid (antal sekunder fra 1/1 1980 kl. 00:00).
invoice, body, invoice_text
Faktura tekst som en tegnstreng. Feltet er obligatorisk.
invoice, body, currency
Faktura valuta angivet som tre-cifret heltal (evt med nul foran) ifølge ISO-3166 standard. Fx danske kroner (DKK) = 208, og euro (EUR) = 978. Feltet er obligatorisk.
invoice, body, amount_ex_vat
Fakturabeløb eksklusiv moms (eller VAT = value-added-tax) angivet som et positivt heltal i valtuaens mindste enhed, fx EUR 25 angives som 2500 cent.
invoice, body, vat_rate
Den på fakturaen anvendte moms rate (i procent) angivet som et positivt heltal.
invoice, body, vat
Det beløb der skal betales i moms angivet, som et positivt heltal i valutaens mindst mulige enhed, fx EUR 25 angives som 2500 cent.
invoice, body, amount_incl_vat
Det samlede beløb som kunden skal betale, angivet som et positivt heltal i valutaens mindst mulige enhed, fx EUR 25 angives 2500 cent. Feltet er obligatorisk.
invoice, body, conditions
De iøvrige betingelser der gælder for fakturaen, fx forhold vedrørende betaling efter forfaldsdato. Feltet er en tekststreng uden længdebegrænsning.
Produktlinier
invoice, body, pline, pnumber
Det varenummer som unikt identificerer det enkelte produkt. Feltet er obligatorisk og kan indeholde en tegnstreng med maximum 30 karakterer.
invoice, body, pline, ptext
Den til et produkt tilhørende varetekst angivet som en tegnstreng (uden længde begrænsning). Feltet er obligatorisk, såfremt fakturaen skal indeholder produktlinier.
invoice, body, pline, punits
Antalsangivelse for produktlinien som et heltal.
invoice, body, pline, punit_price
Enhedspris for produktet angivet som et positivt heltal i valtuaens mindst mulige enhed, fx EUR 25 angives som 2500 cent.
invoice, body, pline, pprice
Samlet pris for produktlinien eksklusiv moms angivet som et heltal. Feltet er obligatorisk såfremt fakturaen skal indeholde produktlinier.
Afsenderinformation
invoice, sender, company
Firmanavn for afsender. Tegnstreng med maksimumlængde på 50 karakterer. Feltet er obligatorisk.
invoice, sender, cvr
Afsenders SE/CVR nummer. Tegnstreng med en maksimumlængde på 20 karakterer. Feltet er obligatorisk.
invoice, sender, first_name
Afsenders fornavn som tegnstreng med maksimum 50 karakterer.
invoice, sender, last_name
Afsenders efternavn som tegnstreng med maksimum 50 karakterer.
invoice, sender, adress
Afsenders postadresse (gadenavn, nummer og salg) som tegnstreng med maksimum 50 karakterer. Feltet er obligatorisk.
invoice, sender, zip_code
Afsenders postnummer som tegnstreng med maksimum 10 karakterer. Feltet er obligatorisk.
invoice, sender, town
Afsenders bynavn som tegnstreng med maksimum 50 karakterer. Feltet er obligatorisk.
invoice, sender, country
Afsenders land som tegnstreng med maksimum 30 karakterer. Feltet er obligatorisk.
invoice, sender, phone
Afsenders telefonnummer som tekststreng med maksimum 15 karakterer.
invoice, sender, fax
Afsenders faxnummer som tekststreng med maksimum 15 karakterer.
invoice, sender, country
Afsenders land som tegnstreng med maksimum 30 karakterer. Feltet er obligatorisk.
invoice, sender, email
Afsenders emailadresse som tegnstreng med maksimumlængde på 70 karakterer. Feltet er obligatorisk.
invoice, sender, account_bank
Afsenders bankkonto-nummer som tekststreng med maksimum 50 karakterer.
invoice, sender, account_giro
Afsenders girokonto-nummer som tekststreng med maksimum 50 karakterer.
Eksempel
<?xml version="1.0" encoding="ISO-8859-1"?>
<invoice>
<status_id>1</status_id>
<deal_id>0</deal_id>
<capture>1</capture>
<invoice_number>60</invoice_number>
<order_number>60</order_number>
<head>
<email>test@test.dk</email>
<company>Test Consult</company>
<cvr>12345678</cvr>
<customer_number>1</customer_number>
<first_name>Test</first_name>
<last_name>Testesen</last_name>
<adress>Testevej 28</adress>
<zip_code>9999</zip_code>
<town>Testerup</town>
<country>Testia</country>
</head>
<body>
<invoice_date>1135954545</invoice_date>
<respite>1137164145</respite>
<delivery_date>1136561812</delivery_date>
<invoice_text>testfakturatekst</invoice_text>
<currency>208</currency>
<amount_ex_vat>200</amount_ex_vat>
<vat_rate>25</vat_rate>
<vat>50</vat>
<amount_incl_vat>250</amount_incl_vat>
<conditions/>
<pline>
<pnumber>P1</pnumber>
<ptext>Testprodukt 1</ptext>
<punits>5</punits>
<punit_price>20</punit_price>
<pprice>100</pprice>
</pline>
</body>
<sender>
<company>Test firma</company>
<cvr>9876543</cvr>
<adress>Testegade 27</adress>
<zip_code>9999</zip_code>
<town>Testerup</town>
<country>Testia</country>
<phone>55555565</phone>
<fax>1231231231</fax>
<email>ordrer@test-firma.dk</email>
<account_bank>11212121212</account_bank>
<account_giro>1212121212</account_giro>
</sender>
</invoice>