Skip to main content

Tax information widget

Available market

UK&US

Widget introduction

TikTok Shop requires that all sellers complete Tax Identity Information before selling products. US businesses/individuals need to fill in the W9 Form, and non-US businesses/individuals need to fill in W8 Form information.

This widget allows sellers to complete tax information and submit this information within the app they're using without jumping to Seller Center Account Settling >> Tax

Showcase

Image

Integration demo

React framework

Configure preload in WidgetConfigProvider preloadWidgetNames, you can put WidgetConfigProvider to the outermost preload time

JSONWord Wrap

import { WidgetConfigProvider,RemoteWidget } from '@tiktokshop/widget-kit-react';  

const getWidgetToken = async () => {
const res: any = await get('https://xxx/api/v1/widget/access_token', {
outer_shop_id: 'xxx',
partner_type: '1',
});
if (res?.code === 0) {
return res?.data;
}
return {};
};

const initOptions = {
config: {
shopId: 'xxx', //seller id, such as 123456
oecRegion: 'xxx', //country,such as US
appKey: 'xxx', //The key corresponding to the merchant's creation service
isvInfo: {
name: 'xxx', //ISV name,such as OPEN_PLATFORM
},
},
getToken: getWidgetToken, //get auth token
remotes: [
{
name: 'xxx', //Integrated business name, provided by the open platform,such as:@tiktokshop-widget/finance:taxNumber
},
],
};

export default () => {
return (
<WidgetConfigProvider
config={initOptions.config}
getToken={initOptions.getToken}
remotes={initOptions.remotes}
preloadWidgetNames={['@tiktokshop-widget/finance:taxNumber']}>
<RemoteWidget
name={'@tiktokshop-widget/finance:taxNumber'}
className={'containerClass'}
options={{
onResult: (data: { code: number }) => {
if (data.code === 0) {
//Callback function for successful tax submission
}
},
}} //Pass in the props required by the widget. If there are none, you don't need to pass them in.
/>
</WidgetConfigProvider>
);
};

Native js

JSONWord Wrap

import React, { useEffect } from 'react';  
import { get } from './utils/fetch';
import { loadWidget, init, WidgetComponent } from '@tiktokshop/widget-kit';

const name = '@tiktokshop-widget/finance:taxNumber';
let view = null;
export default () => {
const getWidgetToken = async () => {
const res: any = await get('https://xxx/api/v1/widget/access_token', {
outer_shop_id: 'xxx',
partner_type: '1',
});
if (res?.code === 0) {
return res?.data;
}
return {};
};

const initWidget = () => {//It is recommended to initialize the widget in the outer layer and execute the preloadWidget([name]) method to preload resources.
init({
config: {
shopId: 'xxx',
oecRegion: 'US',
appKey: 'xxx',
isvInfo: {
name: 'OPEN_PLATFORM',
},
},
remotes: [
{
name,
},
],
getToken: getWidgetToken,
});
};
useEffect(() => {
initWidget();
loadWidget(name).then((component: WidgetComponent) => {
view = component.create(
document.getElementById('widget-preview-container')!,
);
view?.render({
onResult: (data: { code: number }) => {
if (data.code === 0) {
//Callback function for successful tax submission
}
},
});
});
return () => {
view?.unmount();
};
}, []);
return (
<div
className="widget-preview-container"
id="widget-preview-container"></div>
);
};

Change log

Release dateUpdate
2024/2/22The first version is launched

Widget SDK User Guide

Widget SDK User Guide