Overview
Synctera offers in-store cash deposits through InComm’s VanillaDirect solution. With this solution, customers generate a barcode on demand, and present it to a cashier at an InComm-supported retailer (e.g., 7-Eleven, Walgreens, CVS), which allows them to deposit physical cash directly into their account. This method provides an accessible alternative when ATMs or traditional banking options are not available.Barcode UX build
As you own the user experience, you are responsible for building the barcode UX in your app, which includes:- Generating a barcode
- Displaying the barcode and payment slip
- Presenting the transaction details/receipt
- Providing access to the retailer map
Prerequisites
Prerequisites for creating barcodes:Managing Barcodes
Create Barcode
Barcodes should be generated through the customer’s app shortly before they intend to make a deposit using the POST /v2/cash/barcodes endpoint. Each barcode is single-use, is valid for 15 minutes and must be used at a participating retail location within a 15-mile radius of the location where it was generated.Example Request
Example Response
Block Barcode
If a barcode has been generated but needs to be blocked to prevent further use, you can update its status toBLOCKED using the PATCH /v2/cash/barcodes/{barcode_id} endpoint.
Example Request
Example Response
Displaying Barcodes
Barcodes should be generated using the Code 128C format to ensure compatibility with retailer point-of-sale (POS) systems. Adhering to the specifications below will help ensure reliable scanning and processing.Printable Barcode Requirements
- Barcode format: Must use Code 128C
- Color: Black
- Minimum width: 2 inches (recommended: 2.7 inches)
- Minimum height: 3/8 inch
- Quiet zone: At least 1/8 inch of white space above and below the barcode
- Module size: Minimum of 13 mils (for 300 DPI resolution); the module is the smallest unit width of a bar
- Human-readable text: The barcode value must be printed below the barcode
- File format: It is strongly recommended that barcodes be generated in vector format (e.g., SVG or PDF) to maintain scan quality across different devices and resolutions
Displaying on Smartphone
Customers may present digital barcodes on their smartphones at the point of sale. For optimal scan performance, users should rotate their device to landscape orientation, increasing the barcode’s width and improving scanner readability. The requirements for digital barcodes are the same as for printed versions. Specifically:- The barcode must follow the Code 128C format and all associated size and spacing requirements
- A human-readable number must be displayed below the barcode to allow manual entry by the cashier if scanning fails
Payment Slips
Payment slips should be generated and provided to your customers, containing both the barcode image and the human-readable barcode number. While the layout of the slip can follow your brand’s design and formatting standards, it must include the following required elements:- Payment Range Display the minimum and maximum deposit amounts allowed for the barcode.
- Barcode Expiration Notice Clearly state the time at which the barcode expires.
- VanillaDirect Ice Cream Cone Include the official InComm VanillaDirect branding icon.
- Barcode Display a scannable Code 128C barcode, along with the human-readable number printed below.
- Cash Deposit Fee If applicable, display any fees configured for the cash deposit.
- Terms & Conditions Include a reference to the VDBS Terms of Service.
- Consumer Step-by-Step Provide clear, numbered instructions that explain how to complete the cash deposit at a participating retailer.
- Store Locator Include a link or embedded map to help customers find eligible retail locations near them where the barcode can be used.
- Receipt Provide the ability for your customer to display transaction details after completing a deposit. The transaction’s user_data field contains barcode-specific payment details, including barcode information and merchant location data, which you can use to build a comprehensive receipt:
Please reach out to your Synctera Implementation Representative for sample UX flows.
In-Store Cash Deposit Fees
Cash deposit fees can be automatically deducted from the customer’s account at the time the deposit is processed. To enable this, you must configure a cash deposit fee with a specified amount in your system. If a transaction is reversed, the associated fee will also be automatically reversed. For setup instructions, refer to the Fees section in the developer guide.Point of Sale Interaction
When a customer presents a barcode to the cashier, a test transaction is initiated that results in an authorization on the customer’s account. If the authorization succeeds, the payment is applied and posted to the customer’s account. Once the payment application is successfully processed, the cashier will accept the cash from the customer.At this point, the transaction is considered final and cannot be refunded or reversed.
Multiple test payments can be performed and are valid for authorization. However, only the apply payment finalizes the deposit, prompting the cashier to accept the cash and post the funds to the customer’s account.
Available Retail Locations
To help your customers find nearby participating retailers where they can make cash deposits, you can either:- Embed a retailer map directly within your app using an
<iframe>, or - Redirect customers to the retailer map URL in an external browser.
Embedding the Retailer Map
You can display the map using an<iframe> with the provided URL. The iframe supports geolocation to center the map based on the user’s location.
Retrieving the Retailer Map URL
To get the URL for the retailer map, use the GET /v2/cash/barcodes/retailer_map_url endpoint. You can customize the map’s center using optional query parameters:lat: Latitude of the map centerlng: Longitude of the map center
Sandbox Testing
To test barcode-based cash deposits in the sandbox environment, you can use the transaction simulation endpoints provided.Please reach out to your Synctera Implementation Representative to get you set up in Sandbox.
Retrieve Test Stores
To get a list of stores available for testing, use the GET /v2/cash/transaction_simulations/barcodes/stores endpoint. You can customize the response using query parameters to filter stores by location and radius. For example, retrieving stores outside the barcode’s valid radius can help simulate invalid merchant locations. Supported query parameters:lat(required): Latitude coordinate to center the searchlng(required): Longitude coordinate to center the searchradius(optional): Search radius in mileslimit(optional): Maximum number of stores to return
Example Request
Example Response
Simulating Payments
You can simulate test, apply, and void payments using the POST /v2/cash/transaction_simulations/barcodes/deposits endpoint. Simulations must follow the same logical flow as real-world point-of-sale interactions.Parameters
- type (required): The payment action to simulate. Valid values are:
TEST— Authorizes the payment without applying itAPPLY— Applies the payment and posts funds to the account
- status (required): The status of the payment simulation. Valid values depend on the
type:- For
TESTtype:PAID— Authorize Payment
- For
APPLYtype:PAID— Apply PaymentVOID— Void Payment
- For
Example: Simulate a Test Payment
Reviewing Results
After simulating a payment, review the customer account associated with the barcode to:- Verify the transaction outcome
- Confirm correct fee application

