Handling e-invoicing requirements
Gain a better understanding of how to comply with e-invoicing requirements in Taiwan
Last updated
Gain a better understanding of how to comply with e-invoicing requirements in Taiwan
Last updated
If you select the Direct integrations option and you'd like to use the e-invoicing service, this article outlines one possible approach you might use to handle a guest checkout that is assigned a sellingEntity.id
of DR_TAIWAN-ENTITY
.
In registered checkouts, your application can implement additional operations that save and/or retrieve a customer's tax identifier.
Before or after customers initiate checkout, use a control (such as a radio button or checkbox) to determine whether they're making the purchase as an individual or on behalf of a business. Depending on the customer's selection, display the appropriate fields in your shipping and/or billing information collection form.
If customers are making the purchase as a business entity, then your form needs to collect their organization/company name. Otherwise, that field isn't needed.
Add a click event handler to the form's submit button that uses the data it collects to set the checkout's customerType
, shipTo
and/or billTo
.
If customerType
is business
, then make sure you define shipTo.organization
and/or billTo.organization
.
In the response, determine whether sellingEntity.id
is DR_TAIWAN-ENTITY
.
If it is, determine the value of customerType
.
If customerType
is individual
, retrieve payment.session.id
, use it to set sessionId
in the invoice attribute element's configuration object, and then create and mount that element. When on complete executes, retrieve id
from the event's payload and pass it as invoiceAttributeId
in the body of an update checkout request.
In B2C transactions, if your create order request contains no invoiceAttributeId
, then Digital River returns a 409 Conflict
.
If customerType
is business
, retrieve payment.session.id
, use it to set sessionId
in the tax identifier element's configuration object and then create and mount the element. Handle on change by checking the event's payload to determine whether elementType
is taxidentifier
and complete
is true
. If that's the case, retrieve identifier.type
and identifier.value
and pass them as type
and value
in the body of a create tax identifier request. From the response, retrieve id
and pass it as taxIdentifiers[].id
in the body of an update checkout request.
In B2B transactions, if your create order request contains no taxIdentifiers[].id
, then Digital River returns a 409 Conflict
.
Once you've completed either of these operations, you can collect the customer's shipping choice (when required) and payment. For details refer to:
The Payment methods for Taiwan section in the Taiwan country guide
After you create the order, initiate fulfillment operations, and then receive the event with a type
of order.complete
, you could use its data.object
to build an order summary page on your site.
As part of that operation, you can determine whether the event's data.object
contains invoiceAttribute
or taxIdentifiers[]
.
If invoiceAttribute
is populated, then you can display each of its attributes
on the summary page. Similarly, if a taxIdentifiers[]
exists, you can display its value
on that same page.
Digital River has integrated with a third-party service that gives customers access to all of their eGUIs. As a result, you're not required to provide this information on your site. In B2C transactions, the service adds the eGUIs to a customer-accessible website managed by the government. In B2B transactions, customers are sent an email that contains the eGUI number, a link to the national lottery site, and a PDF attachment of the invoice.
For each invoiceAttribute.type
, the following provides an example of the data contained in order.complete
.