code: @Override
      public State send() throws TransactionException {
          final PkiOperationResponseHandler handler = new PkiOperationResponseHandler();
          CMSSignedData signedData;
          try {
              signedData = encode(request);
          } catch (MessageEncodingException e) {
              throw new TransactionException(e);
          }
  
          CMSSignedData res = send(handler, new PkiOperationRequest(signedData));
          CertRep response;
          try {
              response = (CertRep) decode(res);
          } catch (MessageDecodingException e) {
              throw new TransactionException(e);
          }
  
          if (response.getPkiStatus() == PkiStatus.FAILURE) {
              return failure(response.getFailInfo());
          } else if (response.getPkiStatus() == PkiStatus.SUCCESS) {
              return success(extractCertStore(response));
          } else {
              throw new TransactionException("Invalid Response");
          }
      }
docs: Sends the request and processes the server response.
  <p>
  If the server returns a pending response, this method will throw a
  <tt>TransactionException</tt>, since this is unexpected behaviour.
  
  @return the state as returned by the SCEP server.
  @throws TransactionException
  if an error was encountered when sending this transaction.