Hi Bryan,
If i use the code below and create a payment link, after the customer pays an invoice is not generated and marked as paid and the subscription link stays as active and doesn’t show paid.
$price_money = new \Square\Models\Money();
$price_money->setAmount($luna_subscription_charge);
$price_money->setCurrency('GBP');
$charge = new \Square\Models\Money();
$charge->setAmount(200);
$charge->setCurrency('GBP');
$shipping_fee = new \Square\Models\ShippingFee($charge);
$shipping_fee->setName('Card processing fee');
$quick_pay = new \Square\Models\QuickPay(
$plan_friendly_name,
$price_money,
$location_id
);
$accepted_payment_methods = new \Square\Models\AcceptedPaymentMethods();
$accepted_payment_methods->setApplePay(true);
$accepted_payment_methods->setGooglePay(true);
$checkout_options = new \Square\Models\CheckoutOptions();
$checkout_options->setSubscriptionPlanId($plan_id);
$checkout_options->setRedirectUrl('https://mywebsite.com/summary_page');
$checkout_options->setMerchantSupportEmail('[email protected]');
$checkout_options->setAskForShippingAddress(false);
$checkout_options->setAcceptedPaymentMethods($accepted_payment_methods);
$checkout_options->setShippingFee($shipping_fee);
$buyer_address = new \Square\Models\Address();
$buyer_address->setFirstName($customer_firstname);
$buyer_address->setLastName($customer_lastname);
$pre_populated_data = new \Square\Models\PrePopulatedData();
$pre_populated_data->setBuyerEmail($customer_email);
$pre_populated_data->setBuyerAddress($buyer_address);
$body = new \Square\Models\CreatePaymentLinkRequest();
$body->setIdempotencyKey(guidv4($customer_company));
$body->setDescription($customer_company);
$body->setQuickPay($quick_pay);
$body->setCheckoutOptions($checkout_options);
$body->setPrePopulatedData($pre_populated_data);
$api_response = $client->getCheckoutApi()->createPaymentLink($body);
Cheers,
dmxit