@Alon Waisman, I tried creating generic objects for the payment link from last week but the nested objects are not populated. Below is my code and attached is the screen shot of the debug log. What am I doing wrong? HttpRequest request = new HttpRequest(); request.setMethod('GET'); request.setEndPoint('https://735ef563-176d-431c-85ce-2cc07056ef03.mock.pstmn.io/payments/link'); Http http = new Http(); HttpResponse response = http.send(request); String responseBody = response.getBody(); //Map<String, Object> responseMap = (Map<String, Object>) JSON.deserializeUntyped(responseBody); //Map<String, Object> Payer = (Map<String, Object>) responseMap.get('payer'); //Map<String, Object> thisTransaction = (Map<String, Object>) responseMap.get('transaction'); public class MyPayment { String paymentId; Integer timestamp; Decimal amount; MyBankAccount bankAccount; MyAddress address; } public class MyBankAccount { String bankName; Integer routingNumber; Integer accountNumber; } public class MyAddress { String street; String city; } MyPayment myPay = (MyPayment) JSON.deserialize(responseBody, MyPayment.class); //MyTransaction mycurrentTransaction = (MyTransaction) myPayment.get('transaction'); System.debug(myPay); System.debug(myPay.bankAccount); System.debug(myPay.address); //System.debug(responseMap.get('currency')); //System.debug(payer.get('link')); //System.debug(thisTransaction.get('transactionStatus'));