Under the accrual method of accounting, income that is received in advance is a liability because the company that received the money has not yet earned it and it has an obligation (a liability) to deliver the related goods or services in the future. Accountants may say that the income should be deferred to a balance sheet account until it is earned. Once the money is earned it will be moved from the balance sheet account to a revenue or income account.
In terms of debits and credits, the company receiving the money in advance will debit the asset account Cash and will credit a liability account such as Unearned Income, Unearned Revenues, Deferred Income, Deferred Revenues, Customer Deposits, etc. Let's assume that the credit is made to Deferred Income.
After the company earns the money that was prepaid (by delivering the goods or services), it will then debit Deferred Income and will credit a revenue or income account.