Mandala
Tools

Sandbox

Indian KYC and GST verification (PAN, Aadhaar, bank account, GSTIN)

Usage Instructions

Integrate Sandbox (developer.sandbox.co.in) into the workflow: verify PAN, Aadhaar, bank accounts, and MCA company records, and look up or verify GSTINs against the GST network. Bring your own Sandbox API key/secret, or fund calls with a stored credential or the platform-provided key.

Tools

sandbox_pan_verify

Verifies an Indian PAN (Permanent Account Number) against the income tax department's records, returning its validity status and whether the supplied name/date of birth match.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
panstringYesPAN to verify, e.g. ABCDE1234F
name_as_per_panstringNoName to match against the PAN record
date_of_birthstringNoDate of birth to match, DD/MM/YYYY
consentstringYesExplicit consent to verify, 'Y'
reasonstringYesPurpose of verification (min 20 characters, for audit/compliance)

Output

ParameterTypeDescription
panstringThe PAN that was verified
categorystringPAN holder category, e.g. individual
statusstring'valid' or 'invalid'
remarksstringAdditional remarks, if any
nameAsPerPanMatchbooleanWhether the supplied name matched
dateOfBirthMatchbooleanWhether the supplied DOB matched
aadhaarSeedingStatusstringAadhaar-seeding status code
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

Checks whether a PAN is linked (seeded) to a given Aadhaar number.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
panstringYesPAN to check, e.g. ABCDE1234F
aadhaar_numberstringYes12-digit Aadhaar number
consentstringYesExplicit consent to check, 'Y'
reasonstringYesPurpose of the check (min 20 characters, for audit/compliance)

Output

ParameterTypeDescription
aadhaarSeedingStatusstringSeeding status code
messagestringHuman-readable status message
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_aadhaar_generate_otp

Sends an OTP to the mobile number linked to an Aadhaar number, as the first step of Aadhaar OKYC verification. Sandbox marks this endpoint deprecated in favor of DigiLocker-based verification -- it still works, but consider DigiLocker for new integrations. Sends a real OTP to whoever holds the Aadhaar number: only call with a number the workflow's own user has consented to verify.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
aadhaar_numberstringYes12-digit Aadhaar number to send an OTP to
consentstringYesExplicit consent to verify, 'Y'
reasonstringYesPurpose of verification, for audit/compliance tracking

Output

ParameterTypeDescription
referenceIdstringReference id to pass to the Verify OTP operation
messagestringStatus message
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_aadhaar_verify_otp

Verifies the OTP sent by Aadhaar Generate OTP and returns the Aadhaar holder’s demographic details on success. Returns personal data (name, DOB, address, photo) -- handle the result as sensitive.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
reference_idstringYesReference id returned by Generate OTP
otpstringYes6-digit OTP the user received

Output

ParameterTypeDescription
statusstring'VALID' on success
messagestringStatus message
namestringAadhaar holder name
genderstringAadhaar holder gender
dateOfBirthstringDate of birth, DD-MM-YYYY
yearOfBirthstringYear of birth
careOfstringCare-of / guardian's name
fullAddressstringFull address as a single string
addressobjectStructured address
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_bank_ifsc_verify

Looks up an Indian bank branch by its IFSC code, returning the bank, branch, address, and supported payment rails (UPI/RTGS/NEFT/IMPS).

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
ifscstringYes11-character IFSC code, e.g. HDFC0001234

Output

ParameterTypeDescription
ifscstringThe IFSC that was looked up
bankstringBank name
bankCodestringBank code
branchstringBranch name
addressstringBranch address
citystringCity
districtstringDistrict
statestringState
centrestringBanking centre
contactstringBranch contact number
upibooleanWhether UPI is supported
rtgsbooleanWhether RTGS is supported
neftbooleanWhether NEFT is supported
impsbooleanWhether IMPS is supported
swiftstringSWIFT code
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_bank_penny_drop

Verifies a bank account by depositing a small real amount (₹1) and confirming the account holder name -- this has a real financial side effect, unlike Penny-Less verification.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
ifscstringYes11-character IFSC code of the account holder’s bank branch
account_numberstringYesBank account number to verify
namestringNoExpected account holder name, for a match check
mobilestringNo10-digit mobile number, for a match check

Output

ParameterTypeDescription
messagestringStatus message
accountExistsbooleanWhether the account was found and verified
nameAtBankstringRegistered account holder name
utrstringUTR of the ₹1 verification deposit
amountDepositedstringAmount deposited for verification
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_bank_penny_less

Verifies a bank account and account holder name WITHOUT depositing any real money -- unlike Penny Drop, this is a pure read/verification call.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
ifscstringYes11-character IFSC code of the account holder’s bank branch
account_numberstringYesBank account number to verify
namestringNoExpected account holder name, for a match check
mobilestringNo10-digit mobile number, for a match check

Output

ParameterTypeDescription
messagestringStatus message
accountExistsbooleanWhether the account was found and verified
nameAtBankstringRegistered account holder name
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_mca_company_master_data

Fetches a company's master data from the Ministry of Corporate Affairs registry using its CIN or LLPIN.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
cinstringYesCorporate Identification Number (or LLPIN), 21 characters

Output

ParameterTypeDescription
companiesarrayCompany master data records (usually one entry) for the given CIN/LLPIN
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_mca_search_company

Searches the MCA company registry by CIN or a company-name prefix, useful for finding a CIN before an exact Company Master Data lookup.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
cinstringNoExact CIN/LLPIN to search for (mutually exclusive with company_name)
company_namestringNoCompany name prefix to search for, min 3 characters (mutually exclusive with cin)
limitnumberNoResults per page
offsetnumberNoPagination offset

Output

ParameterTypeDescription
recordsarrayMatching companies (cin + companyName)
limitnumberPage size used
offsetnumberPagination offset used
countnumberNumber of records in this page
hasMorebooleanWhether more pages are available
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_gst_search_gstin

Looks up a GSTIN's full public taxpayer profile (legal/trade name, constitution, status, registration date, e-invoice status, address) from the GST network.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
gstinstringYesGSTIN to look up

Output

ParameterTypeDescription
gstinstringThe GSTIN that was looked up
legalNamestringLegal name of business
tradeNamestringTrade name
constitutionOfBusinessstringe.g. Proprietorship, Private Limited
dutyTypestringe.g. Regular, Composition
statusstringe.g. 'Active'
registrationDatestringGST registration date, DD/MM/YYYY
lastUpdatedDatestringLast profile update date
einvoiceStatusstringWhether e-invoicing applies
natureOfBusinessarrayDeclared nature-of-business activities
principalAddressobjectPrincipal place of business address
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_gst_verify_gstin

Verifies whether a GSTIN is valid and active, returning basic taxpayer details (legal name, PAN, state, registration date).

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
gstinstringYesGSTIN to verify

Output

ParameterTypeDescription
gstinstringThe GSTIN that was verified
legalNamestringLegal name of business
businessNaturestringNature of business
stateNamestringRegistered state
stateCodestringGST state code
panstringPAN backing the GSTIN
validGstinbooleanWhether the GSTIN is valid
registrationStartDatestringGST registration start date
statusstringe.g. 'Active'
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_gst_search_gstin_by_pan

Finds every GSTIN registered against a given PAN within one state, useful for discovering a business’s GST registrations before a Verify/Search GSTIN call.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
panstringYesPAN to search GSTINs for
state_codestringYesGST state code to search within, e.g. 24 for Gujarat

Output

ParameterTypeDescription
recordsarrayGSTIN records found for this PAN in the given state
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_gst_track_returns

Lists which GST returns a GSTIN has e-filed for a financial year, with filing dates and status.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
gstinstringYesGSTIN to track returns for
financial_yearstringYesFinancial year, e.g. 'FY 2025-26'
gstrstringNoOptional return type filter, e.g. 'gstr-1'

Output

ParameterTypeDescription
filingsarrayE-filed returns for the requested financial year
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_gst_return_preference

Gets a GSTIN's declared quarterly/monthly return-filing preference for a financial year.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
gstinstringYesGSTIN to check
financial_yearstringYesFinancial year, e.g. 'FY 2025-26'

Output

ParameterTypeDescription
preferencesarrayPer-quarter filing preference (M=Monthly, Q=Quarterly)
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_gst_day_wise_changed_gstins

Lists GSTINs that changed (generated, cancelled, updated, expired) in one state on a given day. GSTINs are returned as an MD5 hash, not plaintext, per Sandbox’s own response format.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
datestringYesDate to check, DD-MM-YYYY
state_codestringYes2-digit GST state code
pagenumberNoPage number

Output

ParameterTypeDescription
totalCountnumberTotal changed GSTINs across all pages
totalPagesnumberTotal pages available
currentPagenumberCurrent page number
isLastPagebooleanWhether this is the last page
countnumberChanged-GSTIN count on this page
changesarrayPer-state lists of changed GSTIN hashes with change type/date
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_gst_unregistered_applicant_details

Fetches the details of a GST-unregistered applicant (e.g. a casual taxable person) by their enrolment number.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
enrolment_numberstringYesEnrolment number of the unregistered applicant

Output

ParameterTypeDescription
namestringApplicant name
panstringPAN of the applicant
statestringState
authStatusstringAuthorization status code
registrationDatestringEnrolment/registration date
addressobjectStructured address details
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

sandbox_gst_validate_unregistered_applicants

Checks whether a supplied email and/or mobile number match a GST-unregistered applicant’s enrolment record.

Input

ParameterTypeRequiredDescription
apiKeystringNoSandbox API key (x-api-key). Leave empty to use a stored credential or the platform-provided key.
apiSecretstringNoSandbox API secret, exchanged for a short-lived access token.
environmentstringNoSandbox environment: 'test' or 'production'
enrolment_numberstringYesEnrolment number of the unregistered applicant, max 15 characters
emailstringNoEmail address to match (at least one of email/mobile required)
mobilestringNoMobile number to match, max 10 digits (at least one of email/mobile required)

Output

ParameterTypeDescription
enrolmentNumberstringThe enrolment number checked
mobileMatchstring'matched' or 'unmatched'
emailMatchstring'matched' or 'unmatched'
costobjectPlatform-billed cost, present only when the platform-provided credential funded this call

Notes

  • Category: tools
  • Type: sandbox
Sandbox