docs: @NonNull
      public Map<String, Object> toParamMap() {
          final AbstractMap<String, Object> networkReadyMap = new HashMap<>();
  
          if (mPaymentMethodCreateParams != null) {
              networkReadyMap.put(API_PARAM_PAYMENT_METHOD_DATA,
                      mPaymentMethodCreateParams.toParamMap());
          } else if (mPaymentMethodId != null) {
              networkReadyMap.put(API_PARAM_PAYMENT_METHOD_ID, mPaymentMethodId);
          } else if (mSourceParams != null) {
              networkReadyMap.put(API_PARAM_SOURCE_DATA, mSourceParams.toParamMap());
          } else if (mSourceId != null) {
              networkReadyMap.put(API_PARAM_SOURCE_ID, mSourceId);
          }
  
          if (mReturnUrl != null) {
              networkReadyMap.put(API_PARAM_RETURN_URL, mReturnUrl);
          }
          networkReadyMap.put(API_PARAM_CLIENT_SECRET, mClientSecret);
          if (mExtraParams != null) {
              networkReadyMap.putAll(mExtraParams);
          }
  
          if (mSavePaymentMethod) {
              networkReadyMap.put(API_PARAM_SAVE_PAYMENT_METHOD, true);
          }
  
          return networkReadyMap;
      }