code: public List<TCert> getTCertBatch(GetTCertBatchRequest req) throws GetTCertBatchException {
          logger.debug(String.format("[MemberServicesImpl.getTCertBatch] [%s]", req));
  
          try {
              // create the proto
              TCertCreateSetReq.Builder tCertCreateSetReq = TCertCreateSetReq.newBuilder()
                      .setTs(Timestamp.newBuilder().setSeconds(new java.util.Date().getTime()))
                      .setId(Identity.newBuilder().setId(req.getName()))
                      .setNum(req.getNum());
  
              if (req.getAttrs() != null) {
                  for (String attr : req.getAttrs()) {
                      tCertCreateSetReq.addAttributes(TCertAttribute.newBuilder().setAttributeName(attr).build());
                  }
              }
  
              // serialize proto
              byte[] buf = tCertCreateSetReq.buildPartial().toByteArray();
  
              // sign the transaction using enrollment key
              java.security.PrivateKey signKey = cryptoPrimitives.ecdsaKeyFromPrivate(Hex.decode(req.getEnrollment().getKey()));
              BigInteger[] sig = cryptoPrimitives.ecdsaSign(signKey, buf);
              Signature protoSig = Signature.newBuilder().setType(CryptoType.ECDSA).setR(ByteString.copyFrom(sig[0].toString().getBytes())).setS(ByteString.copyFrom(sig[1].toString().getBytes())).build();
              tCertCreateSetReq.setSig(protoSig);
  
              // send the request
              TCertCreateSetResp tCertCreateSetResp = tcapClient.createCertificateSet(tCertCreateSetReq.build());
              logger.debug("[MemberServicesImpl.getTCertBatch] tCertCreateSetResp : [%s]" + tCertCreateSetResp.toByteString());
  
              return processTCertBatch(req, tCertCreateSetResp);
          } catch (Exception e) {
              throw new GetTCertBatchException("Failed to get tcerts", e);
          }
      }
docs: Get an array of transaction certificates (tcerts).
  @param req Request of the form: name, enrollment, num
  @return enrollment