SuiteQL Query Library

Accounts Receivable: Aging Details

Returns detailed Accounts Receivable information based on a specific customer.

-- Contributor: Tim Dietrich (timdietrich@me.com)
-- Additional Info: https://timdietrich.me/blog/netsuite-suiteql-accounts-receivable-aging/
SELECT
	BUILTIN.DF( Transaction.Entity ) AS Customer,
	Transaction.Type AS TransactionType,
	Transaction.TranDate AS Date,
	Transaction.TranID AS DocumentNumber,	
	Transaction.OtherRefNum AS PONumber,
	Transaction.DueDate,
	( TRUNC( SYSDATE ) - Transaction.DueDate ) AS Age,
	( COALESCE( TransactionAccountingLine.AmountUnpaid, 0 ) - COALESCE( TransactionAccountingLine.PaymentAmountUnused, 0 ) ) AS OpenBalance
FROM
	Transaction
	INNER JOIN TransactionAccountingLine ON
		( TransactionAccountingLine.Transaction = Transaction.ID )
WHERE
	( Transaction.Entity = 999999 )
	AND ( Transaction.Posting = 'T' )
	AND ( Transaction.Voided = 'F' )
	AND ( 
		( TransactionAccountingLine.AmountUnpaid <> 0 )
		OR ( TransactionAccountingLine.PaymentAmountUnused <> 0 )
	)
ORDER BY
	Transaction.TranDate,
	Transaction.TranID

Click here to return to the list of available queries.

About Me

Hello, I’m Tim Dietrich. I design and build custom software for businesses running on NetSuite — from mobile apps and Web portals to Web APIs and integrations.

I’ve created several widely used open-source solutions for the NetSuite community, including the SuiteQL Query Tool and SuiteAPI, which help developers and businesses get more out of their systems.

I’m also the founder of SuiteStep, a NetSuite development studio focused on pushing the boundaries of what’s possible on the platform. Through SuiteStep, I deliver custom software and AI-driven solutions that make NetSuite more powerful, accessible, and future-ready.

Copyright © 2025 Tim Dietrich.