Collect seller data
Get each seller's identity, tax residence, VAT, and financial account details into Taxbit, through the React SDK or the account owner API, and check their status.
Step 1 of MRDP & DAC7 Reporting. Before Taxbit can report a seller's income, it needs the seller's details: legal name, address, tax residences and TINs, date and place of birth, VAT number, business registration, and the financial account associated with them. Each seller is an account owner, and the details live on that account owner.
There are two routes:
- The React SDK, when you want sellers to fill in a Digital Platform Seller (DPS) questionnaire inside your app.
- The API, when you already hold the seller's details and want to send them from your backend.
Taxbit also accepts seller data as CSV files through the Ingest page in the Taxbit Dashboard, which offers each template; see the MRDP/DAC7 data requirements.
Before you begin
- A bearer token. See Authenticate.
- The seller's account owner. See Create account owners and accounts.
Collect with the React SDK
Render the SDK's questionnaire with questionnaire="DPS". The seller answers it in your app, and the submission is stored as DPS tax documentation on their account owner. The Questionnaire integration guide covers installing the SDK, requesting the account owner token, and rendering the questionnaire.
Send seller data through the API
Update the seller's account owner with the details you hold. Send only the fields you are setting. Here the seller is an individual resident in Germany:
curl -X PATCH $BASE_URL/v1/account-owners/usr_2e9f4c7a \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Lena Hoffmann",
"birth_date": "1988-04-17",
"birth_city": "Hamburg",
"birth_country": "DE",
"address": {
"first_line": "Kastanienallee 41",
"city": "Berlin",
"postal_code": "10435",
"country": "DE"
},
"tax_residencies": [
{ "country": "DE", "tin": "48036952129", "tin_type": "OTHER" }
],
"vat_id": "298374651",
"vat_country_code": "DE",
"financial_account_id": "DE89370400440532013000",
"financial_account_holder_name": "Lena Hoffmann"
}'A 200 returns the updated account owner in data. To send these fields when you create the seller, include them in POST /v1/account-owners instead.
For a seller that is a business, set account_owner_type to ENTITY when you create it, and add business_registration_number and business_registration_country_code.
A seller with no TIN for a country of residence still gets a tax_residencies entry for it, with tin_not_required set to true and a tin_not_required_reason of NOT_ISSUED, NOT_REQUIRED, or OTHER.
Country fields take a two-letter ISO 3166-1 alpha-2 code, such as DE, and aren't validated on this endpoint, so a country name is stored as sent; see Country fields.
Check the DPS status
Read the seller's tax documentation status:
curl $BASE_URL/v1/account-owners/usr_2e9f4c7a/tax-documentation-status \
-H "Authorization: Bearer $TOKEN"dps_questionnaire reports on the seller's DPS questionnaire:
data_collection_statusisCOMPLETEorINCOMPLETE: whether the required information for the questionnaire has been collected.tax_documentation_statusisVALIDwhen the most recent DPS submission has passed validation checks, orINVALIDwhen it has issues or missing information to correct before it can be used for reporting.issueslists what needs fixing, each with anissue_typeand astatusofOPEN,IN_REVIEW, orRESOLVED.needs_resubmissionsays whether to prompt the seller to submit a new DPS questionnaire.expiration_dateis when the questionnaire expires, three years after submission.vat_statusis the outcome of VAT validation (PENDING,VALID,INVALID,INSUFFICIENT_DATA,NOT_REQUIRED, orNON_EU), andvat_validation_dateis when the VAT number was validated.
The response also carries a DAC7_interview object, which the API marks deprecated for SDK versions 1.0 and later.
GET /v1/account-owners/{id}/tax-documentation-data returns the submitted DPS data itself, under dps.
If the request fails
- 400. A field failed validation. The message names the field.
- 401. The bearer token is missing, invalid, or expired. Request a new one and retry.
- 404. No account owner has that
id. Create it first, as Create account owners and accounts shows. - 429. Too many requests. Slow down and retry.
The Errors and rate limits page has every error shape, the rate limits, and which calls are safe to retry.
Parameters
Only the fields used above. The full schemas are in the Account Owners reference and the Tax Documentation Status reference.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Optional | The seller's full name. |
birth_date | string | Optional | ISO 8601 date the seller was born. |
birth_city | string | Optional | City where the seller was born. |
birth_country | string | Optional | Country where the seller was born, as a two-letter code. |
address | object | Optional | first_line, second_line, city, state_or_province, postal_code, and country. |
tax_residencies | array | Optional | One entry per country the seller is resident in for tax: country, tin, tin_type (SSN, EIN, ATIN, ITIN, or OTHER), or tin_not_required with tin_not_required_reason. |
vat_id | string | Optional | The seller's VAT identification number. |
vat_country_code | string | Optional | Country where the VAT number is registered. |
business_registration_number | string | Optional | The business's official registration number, for a seller that is a business. |
business_registration_country_code | string | Optional | Country where the business is registered. |
financial_account_id | string | Optional | Identifier of the financial account associated with the seller. |
financial_account_holder_name | string | Optional | Name of the individual or entity that holds that financial account. |
Where to go next
Send seller income payments: step 2, each payment from a buyer to a seller.
Updated 1 day ago
