Sim, você tem que mandar o juridical_person, ao invés de passar nome e cpf, veja um exemplo em Delphi:
json
interface
function PayChargeWithBilletAsPJ(Id: String): String;
implementation
uses uGerenciaClient, uGerenciaNetClientUtilities;
{... your code ... }
function PayChargeWithBilletAsPJ(Id: String): String;
var
Body : String;
PaymentParams: String;
const
BodyText =
'{'+
'"payment": {'+
'"banking_billet": {'+
'"customer": {'+
'"email": "
[email protected]",'+
'"phone_number": "5144916523",'+
'"birth": "1977-07-17",'+
'"address": {'+
'"street": "Avenida Juscelino Kubitschek",'+
'"number": 909,'+
'"neighborhood": "Bauxita",'+
'"complement": "",'+
'"city": "Ouro Preto",'+
'"state": "MG",'+
'"zipcode": "35400000"'+
'},'+
'"name": "Gorbadoc Oldbuck",'+
'"cpf": "94271564656",'+
'"juridical_person": {'+
'"corporate_name": "Nome da Empresa",'+
'"cnpj": "99794567000144"'+
'}'+
'},'+
'"configurations": {' +
'"fine": 200,' +
'"interest": 33' +
'},'+
'"message": "Este é um espaço de até 80 caracteres para informar algo a seu cliente",'+
'"expire_at": "2019-02-21"'+
'}'+
'}'+
'}';
begin
EnableService( 'GerenciaNet.dll' );
ConfigureService( ToPAnsiChar( 'client_id' ),ToPAnsiChar( 'client_secret' ),'sandbox','config.json','');
GerenciaNetAuthorize();
PaymentParams := CreateRequestParams( [ 'id='+Id ] ).Text; // Passa o id da transação
Body := BodyText;
Result := ExecuteGerenciaNetRequest( 'payCharge',PaymentParams,'',Body );
end;