简体   繁体   中英

How can I create a charge without generating an invoice for it in Recurly?

Using node-recurly . The idea is to create a charge without generating an invoice, then create a subscription and have recurly attach the charge to the subscription invoice. However, when I create a charge, the invoice gets generated automatically for it, so the user gets two separate invoices in the email: one for the charge, and one for the subscription. This is the charge object that I use:

const shippingCharge = {
      amount_in_cents: parseFloat(shippingMethod.amount) * 100,
      currency: 'USD',
      description: `${shippingMethod.provider} ${shippingMethod.servicelevel_name} shipping`,
      account: {
        account_code: activationCode,
      },
    };

I pass it to this function that creates a charge:

recurly.transactions.create(chargeObject, (response) => {
    ... blah blah blah
  });

recurly.subscriptions.create is being called next (calls are being made sequentially using promises). The end result is two invoices instead of one.

Recurly's documentation is confusing. When I was trying to create a charge, I made an assumption that I have to create a transaction. After contacting support, I was provided with the link to create a charge . If you look at the code examples on the right, they reference Recurly_Adjustment , not transaction object. So to create a charge I have to create an adjustment , not a transaction. Switching to proper API call fixed the issue and I received a single invoice.

Alex is correct. You will also need to use revenue_schedule_type: at_invoice if you want the charges together. The Recurly API docs do not include NodeJS examples. Here you go:

return recurly.adjustments.create(accountId, {
  unit_amount_in_cents: parseFloat(shippingMethod.amount) * 100,
  currency: 'USD',
  description: `${shippingMethod.provider} ${shippingMethod.servicelevel_name} shipping`,
  revenue_schedule_type: 'at_invoice',
  accounting_code: accountingCode,
}).then(() => {
  // ...create an invoice, subscription, or whatever
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM