PayPal Billing Process
An independent sub-process that can be invoked by various business flows. Through the PayPal Invoicing API; 1) PayPal generates PayPal Invoices, 2) PayPal sends PayPal Invoices, and 3) confirms the payment status of PayPal Invoices to PayPal. The Process also automatically generates a CSV of the Transfer slip for the accounting system.
BPMN Nodes
  • 1 1. Input Draft The person in charge confirms the order details.
  • 43 1x. Error handling The person in charge corrects the cause of the error and regenerates.
  • 5 2a. Check/Cancel The department leader confirms the invoice generation and approves its submission, or cancels the invoicing. If left unattended, it will be automatically approved after 30 minutes.
  • 33 2b. Check/Cancel The department leader confirms the invoice generation and approves its submission, or cancels the invoicing.
  • 46 3a. Check/Cancel (initial) The person in charge will stop billing if necessary. Leave it alone unless it needs to be canceled.
  • 8 3bx. Check/Cancel (daily) The person in charge will stop billing if necessary. Leave it alone unless it needs to be canceled.
  • 29 x1. Table into TSV The system converts the input contents of the Table-type Data Item into TSV format data and sets it in the specified Data Item.
  • 41 x2. Remove Amount column The system removes the Subtotal column from the TSV data so that Subtotal is not sent at the “x3. Generate Invoice” Step.
  • 26 x3. Generate Invoice The system sends TSV data to PayPal. PayPal will generate an invoice based on the data and save it as a draft.
  • 28 x4. Send Invoice The system directs PayPal to send the generated invoice to the customer.
  • 27 x5. Get Status The system retrieves the Invoice status at Paypal to see whether it is paid.
Variables (click to open)
  • = Billing_info = 0:
  • Billing Business Name q_Billing_Business_Name 5:
  • Billing Email q_Billing_Email 2*:
  • Billing Name1 q_Billing_Name1 3:
  • Billing Name2 q_Billing_Name2 4:
  • Additional Recipients q_additionalRecipients 37:
  • Billing_info Language q_Billing_Language 39:
  • = Items_info = 6:
  • Items (ItemName/Qty/UnitPrice…) q_Items 1*:
  • Items TSV q_ItemsTSV 22: Automatically set at x1 and overwritten at x2
  • Currency Code q_SelectCurrencyCode 7*:
  • Tax inclusive q_TaxInclusive 8*:
  • Total Amount q_TotalAmount 38:
  • = Invoice Info = 14:
  • Invoice Number q_DetailInvoiceNumber 36*: INVOICE-#{#sformat(‘%06d’, processInstanceId)}
  • Invoice Date q_Invoice_Date 15*: processInstanceStartDatetime
  • Invoice Payment Due Date q_PaymentTermDate 16*: processInstanceStartDatetime.addMonths(2).getFirstTimeInMonth()
  • Invoicer Business name q_InvoicerBusiness_name 9: ABC, Inc.
  • Invoicer Sales Tax ID q_InvoicerTax_id 12: XX-XXXXXXX
  • Invoicer Website q_InvoicerWebsite 10: https://example.net/
  • Invoicer Logo URL q_InvoicerLogo_url 13: https://example.net/webItems/logos/logo.png
  • Invoicer Given Name q_InvoicerNameGiven_name 23:
  • Invoicer Surname q_InvoicerNameSurname 34:
  • Invoicer Email Address q_InvoicerEmail_address 11*: example@examle.co.jp
  • Invoicer Additional Notes q_InvoicerAdditional_notes 35:
  • Invoice Note q_Invoice_Note 17:
    If you have any questions, please feel free to contact me (Email: jackbrown@example.com / Phone: 03-0000-0001).
  • Invoice Terms q_Invoice_Terms 18: AGREEMENT TO TERMS
    These Terms of Use constitute a legally binding agreement made between you, whether
    personally or on behalf of an entity (“you”) and [business entity name] (“we,” “us” or
    “our”), concerning your access to and use of the [website name.com] website as well as
    any other media form, media channel, mobile website or mobile application related,
    linked, or otherwise connected thereto (collectively, the “Site”).

    – Omitted below –

  • Invoice Memo q_Memo 26*: App/Process that created the Bill: #{processModelInfoName} -p#{processInstanceId}
    Date Bill created : #{processInstanceStartDatetime}
    Bill created by: #{processInstanceInitQuserName}
  • = PayPal Logs = 19:
  • paypalInvoiceId q_Paypal 20: Automatically set at x3
  • paypalInvoiceViewUrl q_invoicer_view_url 25: Automatically set at x3
  • paypalInvoiceStatus q_InvoiceStatus 27: Automatically set at x3, overwritten at x5
  • Payment Date q_PaymentDate 28: Automatically set at x5
  • Payment Amount q_PaymentAmount 29: Automatically set at x5
  • Payment Currency Code q_PaymentCurrencyCode 30: Automatically set at x5
  • (Response JSON) q_ResponseJson 31: Automatically set at x5

Download

paypal-billing-process-20210428-225-en.qar

Only available for Professional or Enterprise edition.

Notes

  • You need to associate the Swimlane settings according to your organizational structure upon import
  • For practical use, please change the fixed values that have been set
    • The Initial Value in the Data Item “Invoicer Business name”,”Invoicer Sales Tax ID”, “Invoicer Website”, “Invoicer Logo URL”, “Invoicer Email Address”, “Invoice Note”, “Invoice Terms”
  • Set up the connection with the PayPal
    • You need to obtain the Client ID and Client secret in My Apps & Credentials of the PayPal Developers beforehand
    • Set up Basic Authentication in [HTTP Authorization Setting] in the [App]
      • Username: Client ID
      • Password: Client secret
    • In the Service Task (Add-on): x3. Generate Invoice, x4. Send Invoice, x5. Get Status,
      • A1: Select HTTP_Authz: Set the HTTP setting name by select

Arrangement Tips

  • This App works on PayPal’s “Sandbox” (test environment)
    • To run in the actual “Live” operation, replace these icons with ones without ‘-for-sandbox’ in the Service Task definition file name

See also

%d bloggers like this: