bill-brainstorming: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
m (→‎Schema: renamed some elements)
m (Replace <entry-title> with {{DISPLAYTITLE:}})
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<entry-title>hBill 0.1</entry-title>
{{DISPLAYTITLE:bill brainstorming}}
{{Template:DraftSpecification}}
 
This page is a brainstorming effort towards a "bill" microformat that provides information about a bill, so that customers can do transactions more easily.
 
Per the [[process]], the development of a [[bill]] microformat requires at a minimum:
* [[bill-examples]]
* [[bill-formats]]
* [[bill-brainstorming]]
before reaching consensus on a specific brainstorm which can then be written up as a draft.


hBill is a microformat that allows to provide metainformation on a bill, so that customers can do transactions more easily.
__TOC__
__TOC__
== Draft Specification ==
== bill brainstorming ==
<div class="vcard">
<div class="vcard">
;<span class="role">Editor/Author</span>
;<span class="role">Editor/Author</span>
Line 13: Line 19:


== Status ==
== Status ==
hBill 0.1 is a microformats.org draft specification. Public discussion on hBill takes place on [[hbill-feedback]], the #microformats [[irc]] channel on irc.freenode.net, and [http://microformats.org/discuss/mail/microformats-discuss/ microformats-discuss mailing list].
This is a microformats.org brainstorm. Public discussion on hBill takes place on [[hbill-feedback]], the #microformats [[irc]] channel on irc.freenode.net, and [http://microformats.org/discuss/mail/microformats-discuss/ microformats-discuss mailing list].


=== Available languages ===
=== Available languages ===
The English version of this specification is the only normative version. For translations of this document see the [[#translations]] section.
The English version of this specification is the only normative version.  


=== Errata and Updates ===
=== Errata and Updates ===
Line 34: Line 40:
The hBill schema consists of the following:
The hBill schema consists of the following:


* '''<code>hbill</code>'''. optional.  
* '''<code>hbill</code>'''. ''optional''.  
** '''<code>iban</code>'''. required. IBAN code as specified in [[iso-13616-1|ISO 13616-1:2007 Part 1]].
** '''<code>iban</code>'''. '''required'''. IBAN code as specified in [[iso-13616-1|ISO 13616-1:2007 Part 1]].
** '''<code>bic</code>'''. required. BIC/SWIFT code as specified in [[iso-9362|ISO 9362]].
** '''<code>bic</code>'''. '''required'''. BIC/SWIFT code as specified in [[iso-9362|ISO 9362]].
** '''<code>accountnumber</code>'''. optional. Country specific banking account number.  
** '''<code>accountnumber</code>'''. ''optional''. Country specific banking account number.  
** '''<code>bankcode</code>'''. optional. Country specific bank code.  
** '''<code>bankcode</code>'''. ''optional''. Country specific bank code.  
** '''<code>billingsum</code>'''. required. [http://www.w3.org/TR/xmlschema-2/#double xs:double]. Ammout of money the customer has to submit to the selling party.  
** '''<code>billingsum</code>'''. '''required'''. [http://www.w3.org/TR/xmlschema-2/#double xs:double]. Ammout of money the customer has to submit to the selling party.  
** '''<code>currency</code>'''. required. [[iso-4217|ISO 4217]].
** '''<code>currency</code>'''. '''required'''. [[iso-4217|ISO 4217]].
** '''<code>receiver</code>'''. required. [[hcard]] information of the money receiver.  
** '''<code>receiver</code>'''. '''required'''. [[hcard]] information of the money receiver.  
** '''<code>receivingbank</code>'''. recommended. [[hcard]] information of the money receiving bank.  
** '''<code>receivingbank</code>'''. ''recommended''. [[hcard]] information of the money receiving bank.  
** '''<code>billnumber</code>'''. recommended. [http://www.w3.org/TR/xmlschema-2/#string xs:string]. May be required by the selling party to identify the bill.  
** '''<code>billnumber</code>'''. ''recommended''. [http://www.w3.org/TR/xmlschema-2/#string xs:string]. May be required by the selling party to identify the bill.  
** '''<code>billingdate</code>'''. required. [http://www.w3.org/TR/xmlschema-2/#date xs:date] or [http://www.w3.org/TR/xmlschema-2/#dateTime xs:dateTime]. Date when the bill was created.
** '''<code>billingdate</code>'''. '''required'''. [http://www.w3.org/TR/xmlschema-2/#date xs:date] or [http://www.w3.org/TR/xmlschema-2/#dateTime xs:dateTime]. Date when the bill was created.


=== Field and Element Details ===
=== Field and Element Details ===
''todo''
 
==== hbill ====
* a Bill element is identified by the class <code>hbill</code>
* a document may have multiple bill elements
* if there is only bill in the document, the <code>hbill</code> element ''may'' be missing.
** if the <code>hbill</code> element is missing, it is assumed to be the document
 
==== iban ====
* the IBAN code of the account the money has to get transfered to
* the <code>hbill</code> element ''requires'' the IBAN code
 
==== bic ====
* the BIC/SWIFT code the money has to get transfered to
* the <code>hbill</code> element ''requires'' the BIC/SWIFT code, because the user ''may'' need it
 
==== accountnumber ====
* a country specific banking account number
* the <code>accountnumber</code> element is ''optional''
* ''may'' be provided for national transactions
 
==== bankcode ====
* a country specific bank code
* the <code>bankcode</code> element is ''optional''
* ''may'' be provided for national transactions
 
==== billingsum ====
* the ammout of money the customer has to submit to the selling party
* the <code>hbill</code> element ''requires'' the <code>billingsum</code> element
 
==== currency ====
* the currency of the ammount of money the customer has to submit to the selling party
* the <code>hbill</code> element ''requires'' the <code>currency</code> element
 
==== receiver ====
* [[hcard]] information of the money receiver
* the <code>hbill</code> element ''requires'' the <code>receiver</code> element
 
==== receivingbank ====
* [[hcard]] information of the money receiving bank
* it is ''recommended'' to use the <code>receivingbank</code> element, because the customer ''may not'' be able to get this information based on the IBAN or BIC/SWIFT code
 
==== billnumber ====
* it is ''recommended'' to provide this information, so its possible to identify the bill correctly
* some parties ''may'' ''require'' the customer to provide this information in another way (ie. manually filling the 'purpose' or 'customer data' field), which ''should not'' be done
* the <code>hbill</code> element ''requires'' the <code>billnumber</code> element
 
==== billingdate ====
* date when the bill was created
* ''may'' also provide time and timezone information
* the <code>hbill</code> element ''requires'' the <code>billdate</code> element


== Examples ==
== Examples ==
Line 73: Line 128:
* [[hcard]]
* [[hcard]]
* [[adr]]
* [[adr]]
[[Category:Draft Specifications]]

Latest revision as of 16:20, 18 July 2020


This page is a brainstorming effort towards a "bill" microformat that provides information about a bill, so that customers can do transactions more easily.

Per the process, the development of a bill microformat requires at a minimum:

before reaching consensus on a specific brainstorm which can then be written up as a draft.

bill brainstorming

Editor/Author
Johann Dirry

copyright and patents statements apply.

Status

This is a microformats.org brainstorm. Public discussion on hBill takes place on hbill-feedback, the #microformats irc channel on irc.freenode.net, and microformats-discuss mailing list.

Available languages

The English version of this specification is the only normative version.

Errata and Updates

Known errors and issues in this specification are corrected in resolved and closed issues. Please check there before reporting issues.

Introduction

hBill is a microformat for identifying semantic information in electronic bills. hBill content is easily added to bills that are available in xHTML or HTML format.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

Semantic XHTML Design Principles

Note: the Semantic XHTML Design Principles were written primarily within the context of developing hCard and hCalendar, thus it may be easier to understand these principles in the context of the hCard design methodology (i.e. read that first). Tantek

XHTML is built on XML, and thus XHTML based formats can be used not only for convenient display presentation, but also for general purpose data exchange. In many ways, XHTML based formats exemplify the best of both HTML and XML worlds. However, when building XHTML based formats, it helps to have a guiding set of principles.

  1. Reuse the schema (names, objects, properties, values, types, hierarchies, constraints) as much as possible from pre-existing, established, well-supported standards by reference. Avoid restating constraints expressed in the source standard. Informative mentions are ok.
    1. For types with multiple components, use nested elements with class names equivalent to the names of the components.
    2. Plural components are made singular, and thus multiple nested elements are used to represent multiple text values that are comma-delimited.
  2. Use the most accurately precise semantic XHTML building block for each object etc.
  3. Otherwise use a generic structural element (e.g. <span> or <div>), or the appropriate contextual element (e.g. an <li> inside a <ul> or <ol>).
  4. Use class names based on names from the original schema, unless the semantic XHTML building block precisely represents that part of the original schema. If names in the source schema are case-insensitive, then use an all lowercase equivalent. Components names implicit in prose (rather than explicit in the defined schema) should also use lowercase equivalents for ease of use. Spaces in component names become dash '-' characters.
  5. Finally, if the format of the data according to the original schema is too long and/or not human-friendly, use <abbr> instead of a generic structural element, and place the literal data into the 'title' attribute (where abbr expansions go), and the more brief and human readable equivalent into the element itself. Further informative explanation of this use of <abbr>: Human vs. ISO8601 dates problem solved

Schema

Schema elements follow the microformat pattern of prefixing a unique identifier (in this case, 'h') on the outermost container element. The parts of this microformat are based on analysis of bills from online shops.

The hBill schema consists of the following:

  • hbill. optional.
    • iban. required. IBAN code as specified in ISO 13616-1:2007 Part 1.
    • bic. required. BIC/SWIFT code as specified in ISO 9362.
    • accountnumber. optional. Country specific banking account number.
    • bankcode. optional. Country specific bank code.
    • billingsum. required. xs:double. Ammout of money the customer has to submit to the selling party.
    • currency. required. ISO 4217.
    • receiver. required. hcard information of the money receiver.
    • receivingbank. recommended. hcard information of the money receiving bank.
    • billnumber. recommended. xs:string. May be required by the selling party to identify the bill.
    • billingdate. required. xs:date or xs:dateTime. Date when the bill was created.

Field and Element Details

hbill

  • a Bill element is identified by the class hbill
  • a document may have multiple bill elements
  • if there is only bill in the document, the hbill element may be missing.
    • if the hbill element is missing, it is assumed to be the document

iban

  • the IBAN code of the account the money has to get transfered to
  • the hbill element requires the IBAN code

bic

  • the BIC/SWIFT code the money has to get transfered to
  • the hbill element requires the BIC/SWIFT code, because the user may need it

accountnumber

  • a country specific banking account number
  • the accountnumber element is optional
  • may be provided for national transactions

bankcode

  • a country specific bank code
  • the bankcode element is optional
  • may be provided for national transactions

billingsum

  • the ammout of money the customer has to submit to the selling party
  • the hbill element requires the billingsum element

currency

  • the currency of the ammount of money the customer has to submit to the selling party
  • the hbill element requires the currency element

receiver

  • hcard information of the money receiver
  • the hbill element requires the receiver element

receivingbank

  • hcard information of the money receiving bank
  • it is recommended to use the receivingbank element, because the customer may not be able to get this information based on the IBAN or BIC/SWIFT code

billnumber

  • it is recommended to provide this information, so its possible to identify the bill correctly
  • some parties may require the customer to provide this information in another way (ie. manually filling the 'purpose' or 'customer data' field), which should not be done
  • the hbill element requires the billnumber element

billingdate

  • date when the bill was created
  • may also provide time and timezone information
  • the hbill element requires the billdate element

Examples

todo

Copyright

Public Domain Contribution Requirement. Since the author(s) released this work into the public domain, in order to maintain this work's public domain status, all contributors to this page agree to release their contributions to this page to the public domain as well. Contributors may indicate their agreement by adding the public domain release template to their user page per the Voluntary Public Domain Declarations instructions. Unreleased contributions may be reverted/removed..

Patents

This specification is subject to a royalty free patent policy, e.g. per the W3C Patent Policy, and IETF RFC3667 & RFC3668.

References

Normative References

ISO
W3C
microformats