docs: @Nullable
      public Protos.Payment getPayment(List<Transaction> txns, @Nullable Address refundAddr, @Nullable String memo)
              throws IOException, PaymentProtocolException.InvalidNetwork {
          if (paymentDetails.hasPaymentUrl()) {
              for (Transaction tx : txns)
                  if (!tx.getParams().equals(params))
                      throw new PaymentProtocolException.InvalidNetwork(params.getPaymentProtocolId());
              return PaymentProtocol.createPaymentMessage(txns, totalValue, refundAddr, memo, getMerchantData());
          } else {
              return null;
          }
      }