Public APIs for Registration form (RF)
Programmatically manage wholesale registration workflows: retrieve form schemas, create registrants, filter applicants, and manage approval status.
These REST APIs let you work with your wholesale registration flow: fetch form definitions, create wholesalers, filter registrants, and change approval status.
Requirements
- Install the BSS B2B Solution Shopify app
- Get your Access Key from the app (see below)
Get the Access Key
Section titled “Get the Access Key”- Get your API Key. If you don’t have one yet, please follow this document to generate it.
- All endpoints on this page are v1: include the key either as
accessKeyin the request body, or as a header:
x-bss-b2b-api-key: <accessKey>⚠️ Not the same header as v2 (
x-api-key, used only by the Volume Pricing v2 endpoint): check the Authentication table if you’re integrating multiple API groups.
Form Endpoints
Section titled “Form Endpoints”Get a form by ID
Purpose
Fetch form data only. Validation logic used on the storefront is not returned.
GET
https://b2b-solution-public-api.bsscommerce.com/api/v1/rf/form/:idPath Params
:id– Form ID
Query Params
domain– your myshopify domain
Headers
x-bss-b2b-api-key– your access key
Example Request
curl --request GET \ --url "https://b2b-solution-public-api.bsscommerce.com/api/v1/rf/form/1?domain=abc.myshopify.com" \ --header "x-bss-b2b-api-key: xxx"Response (example)
{ "success": true, "data": { "formId": 1, "formFields": [ { "id": "header-field-aa4914b46678e", "label": "Primary details", "type": "header", "required": false, "field": "custom", "heading_type": "h4", "width": "100%" }, { "id": "first_name", "label": "First name", "type": "text", "required": true, "help_text": "", "placeholder": "", "default_value": "", "max_character": "", "width": "100%" }, { "id": "last_name", "label": "Last name", "type": "text", "required": false, "help_text": "", "placeholder": "", "default_value": "", "max_character": "", "width": "100%" } ] }}</details>
Wholesaler Endpoints
Section titled “Wholesaler Endpoints”Create wholesaler
POST
https://b2b-solution-public-api.bsscommerce.com/api/v1/rf/wholesaler/registerBody
nameis the field ID in the form.
valueis the submitted customer information.
{ "formId": 1, "formData": [ { "name": "first_name", "value": "TEST" }, { "name": "last_name", "value": "BSS" }, { "name": "password", "value": "testbss" } ]}Response
{ "success": true, "message": "Created wholesaler successfully", "wholesalerId": 3}POST
https://b2b-solution-public-api.bsscommerce.com/api/v1/rf/wholesaler/filterRequest Body Params
domain– your myshopify domainaccessKey– your access keystatus– status to filter (example below)start_date– start date (YYYY-MM-DD)end_date– end date (YYYY-MM-DD)
Example Request
{ "domain": "abc.myshopify.com", "accessKey": "xxx", "status": "pending", "start_date": "2025-03-01", "end_date": "2025-03-15"}Response (example)
{ "success": true, "message": "Success", "data": [ { "id": 34408, "form_id": 1, "status": "PENDING", "fields": [ { "name": "First name", "value": "TEST" }, { "name": "Last name", "value": "CUSTOMER" }, { "name": "Company", "value": "BSS Commerce" }, { "name": "Phone", "value": "+84123456789" }, { "name": "Address", "value": "123 Main St" }, { "name": "City", "value": "Hanoi" }, { "name": "Country", "value": "VN" }, { "name": "State", "value": "" }, { "name": "Zip code", "value": "123456" }, { "name": "Apartment/suite/etc.", "value": "Apartment 123" }, { "name": "Subscribe to our newsletter", "value": "yes" }, { "name": "EU VAT Validation", "value": "AT1234567" }, { "name": "Dropdown selection(s)", "value": "option-1" }, { "name": "UK Validation", "value": "AT1234567" }, { "name": "US EIN Validation", "value": "AT1234567" }, { "name": "ABN Validation", "value": "AT1234567" }, { "name": "India GST Validation", "value": "AT1234567" }, { "name": "Multiple checkbox", "value": "option-1,option-2" }, { "name": "Radio options", "value": "option-1" }, { "name": "Text field", "value": "Test Content" }, { "name": "Text area", "value": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec semper, diam et bibendum congue" }, { "name": "Number", "value": "1234567890" }, { "name": "Date field", "value": "1/1/2025" }, { "name": "File upload", "value": "https://cdn.shopify.com/s/files/1/0647/8964/3514/files/customers_template_20_2824_29-1741832223649.csv?v=1741832226" } ] } ]}Response (no results)
{ "success": false, "data": [] }POST
https://b2b-solution-public-api.bsscommerce.com/api/v1/rf/wholesaler/:actionAction Path Param
- Replace
:actionwithapproveorreject
Important
- You can only change status for accounts currently in PENDING status.
Request Body Params
domain– your myshopify domainaccessKey– your access keyemails– array of customer emails to update
Example Request
{ "domain": "abc.myshopify.com", "accessKey": "xxx", "emails": [ ]}Response (approve with partial errors)
{ "success": true, "message": "Success", "errors": { "email": "Email is not exist" } }}Response (reject)
{ "success": true, "rejected": [ ]}Response (no results)
{ "success": false, "data": [] }Notes & Behavior
Section titled “Notes & Behavior”- Form fetch returns the schema/fields only; it does not include storefront validation logic.
- Status change endpoints operate only on PENDING accounts.
- Some endpoints require
domainandaccessKeyin the request body (see examples above). - Multi-step (version 3) forms ignore any submitted
passwordvalue and always requireemail, even if the form’s schema doesn’t list them explicitly.