Cash Sale API
Cash sales combine an invoice and payment in a single transaction for immediate payment scenarios.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /record/v1/cashSale | List all cash sales |
GET | /record/v1/cashSale/{id} | Get specific cash sale |
POST | /record/v1/cashSale | Create new cash sale |
PATCH | /record/v1/cashSale/{id} | Update cash sale |
DELETE | /record/v1/cashSale/{id} | Delete cash sale |
Key Fields
Header Fields
| Field | Type | Description | Required |
|---|---|---|---|
id | string | Internal ID (read-only) | - |
tranId | string | Cash sale number | Auto-generated |
entity | object | Customer reference | Yes |
tranDate | string | Sale date (ISO 8601) | Yes |
status | object | Cash sale status | Read-only |
subsidiary | object | Subsidiary | Yes (OneWorld) |
Financial Fields
| Field | Type | Description | Required |
|---|---|---|---|
currency | object | Transaction currency | Yes |
exchangeRate | number | Exchange rate | Auto-calculated |
subTotal | number | Subtotal (read-only) | - |
taxTotal | number | Total tax (read-only) | - |
total | number | Grand total (read-only) | - |
Payment Fields
| Field | Type | Description | Required |
|---|---|---|---|
payment | number | Payment amount received | No |
paymentMethod | object | Payment method | No |
creditCard | object | Credit card reference | Conditional |
ccNumber | string | Credit card number (last 4) | No |
ccApproved | boolean | Credit card approved | Read-only |
checkNum | string | Check number | No |
account | object | Deposit to account | Conditional |
undepFunds | boolean | Undeposited funds | No |
Billing & Shipping
| Field | Type | Description | Required |
|---|---|---|---|
billAddr1 | string | Billing address line 1 | No |
billCity | string | Billing city | No |
billState | string | Billing state/province | No |
billZip | string | Billing postal code | No |
shipAddr1 | string | Shipping address line 1 | No |
shipCity | string | Shipping city | No |
shipState | string | Shipping state/province | No |
shipZip | string | Shipping postal code | No |
Other Fields
| Field | Type | Description | Required |
|---|---|---|---|
salesRep | object | Sales representative | No |
memo | string | Internal memo | No |
message | object | Message to customer | No |
class | object | Department/class | No |
location | object | Location | No |
Sublists
| Field | Type | Description | Required |
|---|---|---|---|
item | collection | Line items | Yes (at least 1) |
Line Items
The item sublist contains the products/services sold.
Item Line Fields
| Field | Type | Description | Required |
|---|---|---|---|
item | object | Item reference | Yes |
quantity | number | Quantity sold | Yes |
rate | number | Unit price | Yes |
amount | number | Line total (qty × rate) | Auto-calculated |
description | string | Line description | No |
taxCode | object | Tax code | No |
taxRate1 | number | Tax rate % | Auto-calculated |
grossAmt | number | Amount including tax | Auto-calculated |
isClosed | boolean | Line closed | No |
Example: Create Cash Sale
POST /record/v1/cashSale
Content-Type: application/json
{
"entity": {
"id": "456"
},
"tranDate": "2025-12-25",
"subsidiary": {
"id": "1"
},
"currency": {
"id": "1"
},
"paymentMethod": {
"id": "1"
},
"account": {
"id": "10"
},
"salesRep": {
"id": "123"
},
"memo": "Walk-in customer purchase",
"item": {
"items": [
{
"item": { "id": "789" },
"quantity": 2,
"rate": 49.99,
"description": "Widget Pro - Blue"
},
{
"item": { "id": "790" },
"quantity": 1,
"rate": 19.99,
"description": "Shipping & Handling"
}
]
}
}
Response:
{
"id": "4001",
"tranId": "CS-4001",
"entity": {
"id": "456",
"refName": "Acme Corporation"
},
"tranDate": "2025-12-25",
"status": {
"id": "DEPOSITED",
"refName": "Deposited"
},
"subTotal": 119.97,
"taxTotal": 9.60,
"total": 129.57,
"payment": 129.57,
"links": [
{
"rel": "self",
"href": "https://{account}.suitetalk.api.netsuite.com/services/rest/record/v1/cashSale/4001"
}
]
}
Example: Create Cash Sale with Credit Card
POST /record/v1/cashSale
Content-Type: application/json
{
"entity": {
"id": "456"
},
"tranDate": "2025-12-25",
"subsidiary": {
"id": "1"
},
"currency": {
"id": "1"
},
"paymentMethod": {
"id": "5"
},
"creditCard": {
"id": "2"
},
"ccApproved": true,
"item": {
"items": [
{
"item": { "id": "789" },
"quantity": 1,
"rate": 299.99
}
]
}
}
Example: Update Cash Sale
PATCH /record/v1/cashSale/4001
Content-Type: application/json
{
"memo": "Customer requested rush delivery",
"otherRefNum": "PO-12345"
}
Payment Methods
Common payment methods used with cash sales:
| Payment Method | Use Case |
|---|---|
| Cash | Physical cash payments |
| Check | Check payments |
| Credit Card | Credit/debit card payments |
| ACH/EFT | Electronic bank transfers |
| Wire Transfer | Wire transfers |
| PayPal/Stripe | Online payment gateways |
Undeposited Funds
Set undepFunds: true to hold payment for later bank deposit:
{
"entity": { "id": "456" },
"tranDate": "2025-12-25",
"undepFunds": true,
"paymentMethod": { "id": "1" },
"item": {
"items": [
{
"item": { "id": "789" },
"quantity": 1,
"rate": 99.99
}
]
}
}
When undepFunds is true:
- Payment goes to Undeposited Funds account
- Later included in a Deposit record
- Common for batch deposits
- Allows grouping multiple payments
Query Filters
Find Cash Sales by Date
GET /record/v1/cashSale?q=tranDate='2025-12-25'
Find by Customer
GET /record/v1/cashSale?q=entity='456'
Find by Payment Method
GET /record/v1/cashSale?q=paymentMethod='1'
Find Undeposited Funds
GET /record/v1/cashSale?q=undepFunds=true
Find by Date Range
GET /record/v1/cashSale?q=tranDate BETWEEN '2025-12-01' AND '2025-12-31'
Find High-Value Sales
GET /record/v1/cashSale?q=total > 1000
Important Notes
Accounting Impact
Creating a cash sale:
- Debit: Cash/Bank Account (or Undeposited Funds)
- Credit: Revenue/Income accounts (per line item)
- Credit: Sales Tax Payable (if applicable)
When to Use Cash Sales
- Point of sale transactions
- Walk-in customers
- COD (Cash on Delivery) sales
- E-commerce with immediate payment
- Prepaid services
Cash Sale vs Invoice
| Cash Sale | Invoice |
|---|---|
| Payment received immediately | Payment received later |
| Single transaction | Separate payment transaction |
| Simpler workflow | Better for credit terms |
| No A/R created | Creates A/R balance |
Payment Amount
- If
paymentis omitted, defaults to transactiontotal - Can be less than total for partial payment
- Remaining balance creates A/R
- Overpayment creates customer credit
Credit Card Processing
- Requires credit card processor setup
- Real-time authorization possible
- Tokenization for security
ccApprovedindicates authorization status
Revenue Recognition
- Revenue recognized immediately
- Not deferred unless using revenue recognition features
- Date of sale is recognition date
Voiding vs Deleting
- Void: Recommended for posted transactions
- Creates reversing entries
- Maintains audit trail
- Delete: Only if period unlocked and no dependencies
See Also
- Invoice - Invoice without immediate payment
- Customer Payment - Apply payments separately
- Cash Refund - Refund cash sales
- Deposit - Deposit undeposited funds