PayPal Billing Process 20211227
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.
Worker (#of Swimlane: 2)
  • Accounting
  • Accounting Leader
Business Flow (Complexity of Workflow: 27)
  • 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.
  • 58 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.
  • 59 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.
  • 55 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.
  • 56 x4. Send Invoice
    • The system directs PayPal to send the generated invoice to the customer.
  • 54 x5. Get Status
    • The system retrieves the Invoice status at Paypal to see whether it is paid.
Business Process Variables (#of Data Item: 36)
  • = 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
    • 1234567890123
  • Invoicer Website q_InvoicerWebsite 10
  • Invoicer Logo URL q_InvoicerLogo_url 13
  • Invoicer Given Name q_InvoicerNameGiven_name 23
  • Invoicer Surname q_InvoicerNameSurname 34
  • Invoicer Email Address q_InvoicerEmail_address 11 *
  • 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: / 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] 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

Field Name, num, Initial Value


This archive contains the BPMN icons that are not available in the Basic edition.


  • 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
    • This App works in PayPal’s “Live” environment
      • Does not work with “Sandbox”
      • The invoice will actually be sent, so be careful when running the test, such as using your own address
    • You need to add app then confirm the Client ID and Client secret in My Apps & Credentials of the PayPal Developers beforehand
    • Add a Basic Authentication setting with a name you like in the HTTP Authorization settings of [Apps] and set the following
      • Username: Client ID
      • Password: Client secret
    • In the Service Task (Add-on): x3. Generate Invoice, x4. Send Invoice, x5. Get Status;
      • Set the HTTP setting name by select in A1: Select HTTP_Authz

See also