GST APIEnvironment:
Default OTP575757
API Reference
Overview
Public
Authentication
GSTR
GSTR1
GSTR1A
GSTR2A
GSTR2B
GSTR2X
GSTR3B
Get GSTR3B SummaryGET
Get GSTR1 auto calculated liability detailsGET
Save GSTR3B dataPUT
Offset Liability GSTR3B DataPUT
Save past liability breakup GSTR3B DataPUT
File GSTR3B dataPOST
File GSTR3B dataPOST
validate GSTR3B against auto calculated valuesPOST
Recompute System Calulated InterestPOST
Get system calculated interestGET
Get ITC Reversal BalanceGET
Get Opening Balance For Credit Reversal and Re-claimed DetailsGET
Get latest closing balanceGET
Get RCM opening balanceGET
Submit RCM opening balancePOST
GSTR4
GSTR4A
GSTR4Annual
GSTR5
GSTR6
GSTR6A
GSTR7
GSTR8
GSTR9
GSTR9A
GSTR9C
SPIKE
ALL
IMS
ITC03
ITC04
CMP
Payment
Ledger
e-Invoice
Notices

Save GSTR-3B Tax Figures as a Draft

PUThttps://apisandbox.whitebooks.in/gstr3b/retsave

Used to save entire GSTR3B invoices.

Parameters

query parameters
emailstringrequired
User Email
header parameters
gstinstringrequired
GST Number
ret_periodstringrequired
Return Period (MMYYYY)
gst_usernamestringrequired
GST UserName
state_cdstringrequired
State Code
ip_addressstringrequired
IP Address
txnstringrequired
Transaction
client_idstringrequired
Client ID
client_secretstringrequired
Client Secret

Request Body

application/jsonrequired

Response

Not Found. If requested entity is not found or if requested API is not found.

Frequently Asked Questions

The payload accepts standard GSTR-3B sections: sup_details (Table 3.1 outward and reverse-charge taxable supplies), inter_sup (Table 3.2 supplies to unregistered persons/composition taxpayers), eco_dtls (Table 3.1.1 e-commerce operator supplies), itc_elg (Table 4 eligible and ineligible ITC), and inward_sup (Table 5 exempt/nil/non-GST inward supplies).
The ret_period header must strictly follow the MMYYYY format (e.g. 042026 for April 2026). Passing invalid characters or wrong lengths returns a header validation error.
After saving data via /gstr3b/retsave, call /gstr3b/retoffset to offset tax liabilities against available cash and ITC ledger balances before initiating final filing with DSC or EVC.
Yes. As long as tax liabilities have not been offset (retoffset), you can submit an updated payload via /gstr3b/retsave to overwrite draft values.
PUT/gstr3b/retsave
1const response = await fetch('https://apisandbox.whitebooks.in/gstr3b/retsave?email=value', {
2 method: 'PUT',
3 headers: {
4 gstin: "value",
5 ret_period: "value",
6 gst_username: "value",
7 state_cd: "value",
8 ip_address: "value",
9 txn: "value",
10 client_id: "value",
11 client_secret: "value",
12 Content-Type: "application/json"
13},
14 body: JSON.stringify({
15 "gstin": "05AVHPB7348G1ZP",
16 "ret_period": "042024",
17 "sup_details": {
18 "osup_det": {
19 "txval": 250,
20 "iamt": 100,
21 "camt": 200,
22 "samt": 300,
23 "csamt": 400
24 },
25 "osup_zero": {
26 "txval": 250,
27 "iamt": 100,
28 "csamt": 400
29 },
30 "osup_nil_exmp": {
31 "txval": 250
32 },
33 "isup_rev": {
34 "txval": 250,
35 "iamt": 100,
36 "camt": 200,
37 "samt": 300,
38 "csamt": 400
39 },
40 "osup_nongst": {
41 "txval": 250
42 }
43 },
44 "inter_sup": {
45 "comp_details": [
46 {
47 "txval": 250,
48 "iamt": 100,
49 "pos": "07"
50 }
51 ],
52 "uin_details": [
53 {
54 "txval": 250,
55 "iamt": 100,
56 "pos": "07"
57 }
58 ],
59 "unreg_details": [
60 {
61 "txval": 250,
62 "iamt": 100,
63 "pos": "07"
64 }
65 ]
66 },
67 "eco_dtls": {
68 "eco_sup": {
69 "txval": 250,
70 "iamt": 100,
71 "camt": 200,
72 "samt": 300,
73 "csamt": 400
74 },
75 "eco_reg_sup": {
76 "txval": 250
77 }
78 },
79 "itc_elg": {
80 "itc_avl": [
81 {
82 "camt": 274,
83 "samt": 162.99,
84 "csamt": 103,
85 "iamt": 100,
86 "ty": "OTH"
87 }
88 ],
89 "itc_rev": [
90 {
91 "camt": 274,
92 "csamt": 103,
93 "iamt": 136.53,
94 "samt": 162.99,
95 "ty": "OTH"
96 }
97 ],
98 "itc_net": {
99 "camt": 274,
100 "csamt": 103,
101 "iamt": 136.53,
102 "samt": 162.99
103 },
104 "itc_inelg": [
105 {}
106 ]
107 },
108 "inward_sup": {
109 "isup_details": [
110 {
111 "inter": 100,
112 "intra": 200,
113 "ty": "GST"
114 }
115 ]
116 },
117 "intr_ltfee": {
118 "intr_details": {
119 "camt": 20,
120 "csamt": 40,
121 "iamt": 10,
122 "samt": 30
123 }
124 }
125}),
126});
127
128const data = await response.json();
129console.log(data);
No example available.