code: public Subscription create( String paymentId, String clientId, String offerId, Integer amount, String currency, Interval.PeriodWithChargeDay interval,
        Date startAt, String name, Interval.Period periodOfValidity ) {
      return create( new Payment( paymentId ), new Client( clientId ), new Offer( offerId ), amount, currency, interval, startAt, name, periodOfValidity );
    }
docs: This function creates a {@link Subscription} between a {@link Client} and an {@link Offer}.<br>
  <br>
  A {@link Client} can have several {@link Subscription}s to different {@link Offer}s, but only one
  {@link Subscription} to the same {@link Offer}. The {@link Client}s is charged for each billing interval entered.<br>
  <br>
  <strong>NOTE</strong><br>
  As the Subscription create method has a lot of options, we recommend you to use a {@link com.paymill.models.Subscription.Creator}.
  @param paymentId A {@link Payment} used for charging.
  @param clientId The {@link Client} for whom the subscription should be made
  @param offerId An {@link Offer} to subscribe to. Mandatory only if amount, curreny and interval are not set
  @param amount Amount to be charged. Mandatory if offer is null.
  @param currency Currency in which to be charged. Mandatory if offer is null.
  @param interval Interval of charging. Mandatory if offer is null.
  @param startAt The date, when the subscription will start charging. If longer than 10 minutes in the future, a
  preauthorization will occur automatically to verify the payment.
  @param name A name for this subscription
  @param periodOfValidity if set, the subscription will expire after this period.
  @return the subscription.