CalloutException: You have uncommitted work pending. Please commit or rollback before calling out” occurs when you first perfrom callout and then DML in same transaction. To resolve this issue you need to perform DML in future method so your callout and DML will be in different transaction.