function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
CooldayCoolday 

I am getting this error when I am sending JSON from postman - System.StringException: Invalid id: 

@RestResource(urlMapping='/v1/Order/*')
global class Order{
    global class Result {
        webservice Integer returnCode;
        webservice String message='';
        webservice String recordID;
        webservice String APIName='updateOrder';
    }
    
    
    @HttpPost
    global static Result UpdateOrder() {
        Result res=new Result();
        Map<String, Object> jsonMap = (Map<String, Object>) JSON.deserializeUntyped(RestContext.request.requestBody.toString());
        system.debug('jsonMap---'+jsonMap);
        List<Object> objectRecords = (List<Object>)jsonMap.get('orderDetails');
        Map<String, Object> recordValue = new  Map<String, Object>();
        
        Set<Id> orderIds = new Set<Id>();
        Map<String, Map<String, Object>> objectMap = new Map<String, Map<String,Object>>();
        for(Object o : objectRecords){
            Map<String, Object> rec = new  Map<String, Object>();
            rec = (Map<String, Object>)o;
            orderIds.add((string)rec.get('orderId'));
            objectMap.put((string)rec.get('orderId'), rec);
        } 
        List<Order> OrdersToBeUpdated = new List<Order>();
        
        List<Order> OrderList =[SELECT id,Order_Id__c,Payment_Amount__c, Payment_Status__c FROM Order where Order_Id__c In: orderIds];
        
        if(OrderList == null || OrderList.size() == 0){
            res.returnCode = 401;
            res.message = 'No Order found with this Order ID';
            return res;
        }
        
        if (!OrderList.isEmpty()) {
            for(order ordObj : OrderList){
                Map<String, Object> orderResMap = objectMap.get(ordObj.Order_Id__c);
                ordObj.Payment_Status__c = (String)orderResMap.get('paymentStatus');
                ordObj.Delivery_Status__c = (String)orderResMap.get('deliveryStatus');
                ordObj.Payment_Amount__c = (decimal)orderResMap.get('pendingAmount');
                ordObj.Paid_Amount__c = (decimal)orderResMap.get('paidAmount');
                OrdersToBeUpdated.add(ordObj);
                system.debug('recordValue---'+orderResMap.get('orderId'));
                system.debug('recordValue---'+orderResMap.get('orderNumber'));
                system.debug('recordValue---'+orderResMap.get('paymentStatus'));
                system.debug('recordValue---'+orderResMap.get('pendingAmount'));
            }
        }
        
        if(!OrdersToBeUpdated.isEmpty()){
            update OrdersToBeUpdated;
            res.returnCode = 200;
            res.message = 'Update successful';
            return res;
        }
        
        return null;
    }
    
}


I am getting this error when I am sending JSON from postman -

[
    {
        "errorCode": "APEX_ERROR",
        "message": "System.StringException: Invalid id: 1ba4a3e6-d592-4e4e-836c-4b00284b0d6f\n\nExternal entry point"
    }
]

SwethaSwetha (Salesforce Developers) 
HI Coolday,

Do you have any additional details like the line throwing this error? What is being printed in the debug statements?

system.debug('recordValue---'+orderResMap.get('orderId')); system.debug('recordValue---'+orderResMap.get('orderNumber')); system.debug('recordValue---'+orderResMap.get('paymentStatus')); system.debug('recordValue---'+orderResMap.get('pendingAmount'));

Thanks