public with sharing class CustomerCreationService { public static void createCustomer(Id accountId) { System.Debug('Triggering Account' +accountId ); Account acc = [ SELECT Id, Name, Registration_Number__c, CreatedDate, Days_to_Pay__c, Procurement_Portal__c FROM Account WHERE Id = :accountId ]; RIABU_Integration__mdt cfg = RiabuConfigUtil.getConfig(); String token = RiabuAuthService.getValidAccessToken(); String baseUrl = cfg.Endpoint__c.replace('/oauth/token', ''); // adjust base HttpRequest req = new HttpRequest(); req.setEndpoint(cfg.Endpoint__c + '/api/v1/wizard/customer'); req.setMethod('POST'); req.setHeader('Content-Type', 'application/x-www-form-urlencoded'); req.setHeader('Authorization', 'Bearer ' + token); String body = 'company_name=' + EncodingUtil.urlEncode(acc.Name,'UTF-8') + '&company_uen=' + EncodingUtil.urlEncode(acc.Registration_Number__c,'UTF-8') + '&customer_since=' + EncodingUtil.urlEncode(acc.CreatedDate.format('yyyy-MM-dd'),'UTF-8') + '&agreed_credit_terms_day=' + EncodingUtil.urlEncode(String.valueOf(acc.Days_to_Pay__c),'UTF-8') + '&procurement_portal=' + EncodingUtil.urlEncode(acc.Procurement_Portal__c,'UTF-8'); req.setBody(body); System.Debug('Request Body' + body); System.Debug('Endpoint' + req.getEndpoint()); Http http = new Http(); HttpResponse res = http.send(req); System.debug('Customer Response: ' + res.getBody()); System.debug('Response Code: ' + res.getStatusCode()); } }