dodil/erp-method
modules/payments/signoff/payments/history/payments_receipt.v4.bpmn
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dodil="https://git.dodil.io/dodil/erp-platform/bpmn/1" id="Definitions_payments_v4" name="Payments & collections processes" targetNamespace="https://git.dodil.io/dodil/erp-platform/processes" exporter="erp-platform erp-compose bpmn" exporterVersion="1">
<bpmn:collaboration id="Collaboration_payments_v4">
<bpmn:documentation>Payments & collections: one pool per entity lifecycle, generated from module.yaml.</bpmn:documentation>
<bpmn:participant id="Participant_payments_receipt" name="Receipt" processRef="Process_payments_receipt_v4" />
<bpmn:participant id="Participant_customer" name="The customer (external)">
<bpmn:documentation>Outside the system: the steps it sends are what the process waits on.</bpmn:documentation>
</bpmn:participant>
<bpmn:messageFlow id="Flow_Participant_customer__Task_customer_pays" sourceRef="Participant_customer" targetRef="Task_customer_pays" />
</bpmn:collaboration>
<bpmn:process id="Process_payments_receipt_v4" name="Receipt" isExecutable="false">
<bpmn:documentation>Lifecycle of the receipt, generated from module.yaml by erp-compose bpmn; change the workflow there, not this file. States: received, reversed. Note: How much of a receipt is allocated (unallocated, partly, fully) is DERIVED from its allocations. For the screens the brick answers each receipt's readiness: one {gate, met, reason, fix} per gate of its next transitions (met true or false, the reason in words with the figures, a fix that names the act or the link), so no screen re-derives a rule.</bpmn:documentation>
<bpmn:laneSet id="LaneSet_receipt">
<bpmn:lane id="Lane_receipt_customer" name="The customer (external)">
<bpmn:flowNodeRef>Start_receipt</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_customer_pays</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_receipt_none__if</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_receipt_cashier" name="Whoever records money (bookkeeper, office manager)">
<bpmn:flowNodeRef>Task_record_customer_receipt</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_decide_match</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_allocate</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_settle_difference</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_unallocate</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_reverse_receipt</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_apply_settlement_discount</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_record_cis_deduction</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_allocate_to_payment_request</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_decide_match__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_decide_match__if_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_allocate__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_allocate__if_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_settle_difference__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_settle_difference__if_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_unallocate__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_unallocate__if_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_apply_settlement_discount__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_apply_settlement_discount__if_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_record_cis_deduction__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_record_cis_deduction__if_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_allocate_to_payment_request__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_allocate_to_payment_request__if_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_receipt_received__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>End_receipt_received</bpmn:flowNodeRef>
<bpmn:flowNodeRef>End_receipt_reversed</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_receipt_system" name="The system">
<bpmn:flowNodeRef>Task_import_statement</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_ai_suggest_match</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Task_post_fx_difference</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_ai_suggest_match__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_ai_suggest_match__if_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_post_fx_difference__if</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_post_fx_difference__if_end</bpmn:flowNodeRef>
</bpmn:lane>
</bpmn:laneSet>
<bpmn:startEvent id="Start_receipt" name="Receipt needed">
<bpmn:outgoing>Flow_Start_receipt__Gateway_receipt_none__if</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:receiveTask id="Task_customer_pays" name="The customer pays" dodil:step="customer_pays" dodil:external="true">
<bpmn:documentation>By: The customer. From none to received. Effect: the money arrives in the bank or through a provider. Done outside the system: the process waits for it.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_receipt_none__if__Task_customer_pays</bpmn:incoming>
<bpmn:outgoing>Flow_Task_customer_pays__Gateway_ai_suggest_match__if</bpmn:outgoing>
</bpmn:receiveTask>
<bpmn:userTask id="Task_record_customer_receipt" name="Record the receipt" dodil:step="record_customer_receipt">
<bpmn:documentation>By: Whoever records money (bookkeeper, office manager). From none to received. When: received_on today or earlier (business_timezone); the bank reference is not on another receipt. Effect: unallocated cash on the customer.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_receipt_none__if__Task_record_customer_receipt</bpmn:incoming>
<bpmn:outgoing>Flow_Task_record_customer_receipt__Gateway_ai_suggest_match__if</bpmn:outgoing>
</bpmn:userTask>
<bpmn:serviceTask id="Task_import_statement" name="Import the bank statement line" dodil:step="import_statement" implementation="##unspecified">
<bpmn:documentation>By: The system. From none to received. When: a statement was uploaded (camt.053 or CSV); the line is a credit dated on or after statement_import_from. Effect: keyed bank:account:entry, dated by the bank; a re-import adds nothing.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_receipt_none__if__Task_import_statement</bpmn:incoming>
<bpmn:outgoing>Flow_Task_import_statement__Gateway_ai_suggest_match__if</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:serviceTask id="Task_ai_suggest_match" name="AI suggests the invoices it pays (suggest)" dodil:step="ai_suggest_match" implementation="##unspecified">
<bpmn:documentation>By: The system. From received to received. When: the receipt has unallocated money and the step is on. Effect: a suggestion row with its evidence, confidence and model; nothing allocated.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_ai_suggest_match__if__Task_ai_suggest_match</bpmn:incoming>
<bpmn:outgoing>Flow_Task_ai_suggest_match__Gateway_ai_suggest_match__if_end</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:userTask id="Task_decide_match" name="Accept" dodil:step="decide_match">
<bpmn:documentation>By: Whoever records money (bookkeeper, office manager). From received to received. When: an open suggestion; the receipt and the invoices still have the amounts it proposed. Effect: allocation rows citing the suggestion and the person who accepted it; the suggestion closed as accepted, changed or rejected.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_decide_match__if__Task_decide_match</bpmn:incoming>
<bpmn:outgoing>Flow_Task_decide_match__Gateway_decide_match__if_end</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_allocate" name="Allocate to invoices" dodil:step="allocate">
<bpmn:documentation>By: Whoever records money (bookkeeper, office manager). From received to received. When: never more than the receipt's remainder or an invoice's outstanding; the same currency; dated today. Effect: allocation rows; settlement derived.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_allocate__if__Task_allocate</bpmn:incoming>
<bpmn:outgoing>Flow_Task_allocate__Gateway_allocate__if_end</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_settle_difference" name="Propose the small difference as a write-off" dodil:step="settle_difference">
<bpmn:documentation>By: Whoever records money (bookkeeper, office manager). From received to received. When: the difference is within match_tolerance. Effect: a write-off proposal to invoicing (AR-09).</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_settle_difference__if__Task_settle_difference</bpmn:incoming>
<bpmn:outgoing>Flow_Task_settle_difference__Gateway_settle_difference__if_end</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_unallocate" name="Undo an allocation" dodil:step="unallocate">
<bpmn:documentation>By: Whoever records money (bookkeeper, office manager). From received to received. When: the row is not already reversed. Requires: reason. Effect: a reversing allocation row dated today; history kept.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_unallocate__if__Task_unallocate</bpmn:incoming>
<bpmn:outgoing>Flow_Task_unallocate__Gateway_unallocate__if_end</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_reverse_receipt" name="Reverse a returned payment" dodil:step="reverse_receipt">
<bpmn:documentation>By: Whoever records money (bookkeeper, office manager). From received to reversed. When: the return date is today or earlier and not before received_on. Requires: bank_return_ref. Effect: its allocations reversed by reversing rows; the invoices are owed again.</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_receipt_received__if__Task_reverse_receipt</bpmn:incoming>
<bpmn:outgoing>Flow_Task_reverse_receipt__End_receipt_reversed</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_apply_settlement_discount" name="Apply the early-settlement discount (v3)" dodil:step="apply_settlement_discount">
<bpmn:documentation>By: Whoever records money (bookkeeper, office manager). From received to received. When: received within the invoice's discount window; the difference is exactly the terms' discount. Effect: invoicing's discount credit allocated (ar AR-38), or an allocation source_kind settlement_discount under invoice_wording (PAY-16).</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_apply_settlement_discount__if__Task_apply_settlement_discount</bpmn:incoming>
<bpmn:outgoing>Flow_Task_apply_settlement_discount__Gateway_apply_settlement_discount__if_end</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_record_cis_deduction" name="Record CIS the customer deducted (v3)" dodil:step="record_cis_deduction">
<bpmn:documentation>By: Whoever records money (bookkeeper, office manager). From received to received. When: tax accepts the deduction (at most 30% of the labour). Requires: statement_ref. Effect: tax's CIS suffered recorded; an allocation source_kind cis_deduction (PAY-45).</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_record_cis_deduction__if__Task_record_cis_deduction</bpmn:incoming>
<bpmn:outgoing>Flow_Task_record_cis_deduction__Gateway_record_cis_deduction__if_end</bpmn:outgoing>
</bpmn:userTask>
<bpmn:userTask id="Task_allocate_to_payment_request" name="Allocate to a down-payment request (v3)" dodil:step="allocate_to_payment_request">
<bpmn:documentation>By: Whoever records money (bookkeeper, office manager). From received to received. When: an issued request with something remaining. Effect: invoicing settles it into a deposit invoice; the receipt allocated to that invoice (PAY-36).</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_allocate_to_payment_request__if__Task_allocate_to_payment_request</bpmn:incoming>
<bpmn:outgoing>Flow_Task_allocate_to_payment_request__Gateway_allocate_to_payment_request__if_end</bpmn:outgoing>
</bpmn:userTask>
<bpmn:serviceTask id="Task_post_fx_difference" name="Post the realised exchange difference (v3)" dodil:step="post_fx_difference" implementation="##unspecified">
<bpmn:documentation>By: The system. From received to received. When: an allocation whose receipt and invoice rates differ. Effect: receivable against fx_gain or fx_loss, keyed on the allocation (PAY-33).</bpmn:documentation>
<bpmn:incoming>Flow_Gateway_post_fx_difference__if__Task_post_fx_difference</bpmn:incoming>
<bpmn:outgoing>Flow_Task_post_fx_difference__Gateway_post_fx_difference__if_end</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:exclusiveGateway id="Gateway_receipt_none__if" name="New receipt?">
<bpmn:incoming>Flow_Start_receipt__Gateway_receipt_none__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_receipt_none__if__Task_customer_pays</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_receipt_none__if__Task_record_customer_receipt</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_receipt_none__if__Task_import_statement</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_ai_suggest_match__if" name="the receipt has unallocated money and the step is on?">
<bpmn:incoming>Flow_Task_customer_pays__Gateway_ai_suggest_match__if</bpmn:incoming>
<bpmn:incoming>Flow_Task_record_customer_receipt__Gateway_ai_suggest_match__if</bpmn:incoming>
<bpmn:incoming>Flow_Task_import_statement__Gateway_ai_suggest_match__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_ai_suggest_match__if__Task_ai_suggest_match</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_ai_suggest_match__if__Gateway_ai_suggest_match__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_ai_suggest_match__if_end">
<bpmn:incoming>Flow_Gateway_ai_suggest_match__if__Gateway_ai_suggest_match__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_ai_suggest_match__Gateway_ai_suggest_match__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_ai_suggest_match__if_end__Gateway_decide_match__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_decide_match__if" name="an open suggestion; the receipt and the invoices still have the amounts it proposed?">
<bpmn:incoming>Flow_Gateway_ai_suggest_match__if_end__Gateway_decide_match__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_decide_match__if__Task_decide_match</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_decide_match__if__Gateway_decide_match__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_decide_match__if_end">
<bpmn:incoming>Flow_Gateway_decide_match__if__Gateway_decide_match__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_decide_match__Gateway_decide_match__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_decide_match__if_end__Gateway_allocate__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_allocate__if" name="never more than the receipt's remainder or an invoice's outstanding; the same currency; dated today?">
<bpmn:incoming>Flow_Gateway_decide_match__if_end__Gateway_allocate__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_allocate__if__Task_allocate</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_allocate__if__Gateway_allocate__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_allocate__if_end">
<bpmn:incoming>Flow_Gateway_allocate__if__Gateway_allocate__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_allocate__Gateway_allocate__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_allocate__if_end__Gateway_settle_difference__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_settle_difference__if" name="the difference is within match_tolerance?">
<bpmn:incoming>Flow_Gateway_allocate__if_end__Gateway_settle_difference__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_settle_difference__if__Task_settle_difference</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_settle_difference__if__Gateway_settle_difference__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_settle_difference__if_end">
<bpmn:incoming>Flow_Gateway_settle_difference__if__Gateway_settle_difference__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_settle_difference__Gateway_settle_difference__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_settle_difference__if_end__Gateway_unallocate__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_unallocate__if" name="the row is not already reversed?">
<bpmn:incoming>Flow_Gateway_settle_difference__if_end__Gateway_unallocate__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_unallocate__if__Task_unallocate</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_unallocate__if__Gateway_unallocate__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_unallocate__if_end">
<bpmn:incoming>Flow_Gateway_unallocate__if__Gateway_unallocate__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_unallocate__Gateway_unallocate__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_unallocate__if_end__Gateway_apply_settlement_discount__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_apply_settlement_discount__if" name="received within the invoice's discount window; the difference is exactly the terms' discount?">
<bpmn:incoming>Flow_Gateway_unallocate__if_end__Gateway_apply_settlement_discount__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_apply_settlement_discount__if__Task_apply_settlement_discount</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_apply_settlement_discount__if__Gateway_apply_settlement_discount__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_apply_settlement_discount__if_end">
<bpmn:incoming>Flow_Gateway_apply_settlement_discount__if__Gateway_apply_settlement_discount__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_apply_settlement_discount__Gateway_apply_settlement_discount__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_apply_settlement_discount__if_end__Gateway_record_cis_deduction__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_record_cis_deduction__if" name="tax accepts the deduction (at most 30% of the labour)?">
<bpmn:incoming>Flow_Gateway_apply_settlement_discount__if_end__Gateway_record_cis_deduction__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_record_cis_deduction__if__Task_record_cis_deduction</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_record_cis_deduction__if__Gateway_record_cis_deduction__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_record_cis_deduction__if_end">
<bpmn:incoming>Flow_Gateway_record_cis_deduction__if__Gateway_record_cis_deduction__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_record_cis_deduction__Gateway_record_cis_deduction__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_record_cis_deduction__if_end__Gateway_allocate_to_payment_request__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_allocate_to_payment_request__if" name="an issued request with something remaining?">
<bpmn:incoming>Flow_Gateway_record_cis_deduction__if_end__Gateway_allocate_to_payment_request__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_allocate_to_payment_request__if__Task_allocate_to_payment_request</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_allocate_to_payment_request__if__Gateway_allocate_to_payment_request__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_allocate_to_payment_request__if_end">
<bpmn:incoming>Flow_Gateway_allocate_to_payment_request__if__Gateway_allocate_to_payment_request__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_allocate_to_payment_request__Gateway_allocate_to_payment_request__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_allocate_to_payment_request__if_end__Gateway_post_fx_difference__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_post_fx_difference__if" name="an allocation whose receipt and invoice rates differ?">
<bpmn:incoming>Flow_Gateway_allocate_to_payment_request__if_end__Gateway_post_fx_difference__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_post_fx_difference__if__Task_post_fx_difference</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_post_fx_difference__if__Gateway_post_fx_difference__if_end</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_post_fx_difference__if_end">
<bpmn:incoming>Flow_Gateway_post_fx_difference__if__Gateway_post_fx_difference__if_end</bpmn:incoming>
<bpmn:incoming>Flow_Task_post_fx_difference__Gateway_post_fx_difference__if_end</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_post_fx_difference__if_end__Gateway_receipt_received__if</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="Gateway_receipt_received__if" name="Receipt received: done, or go on?">
<bpmn:incoming>Flow_Gateway_post_fx_difference__if_end__Gateway_receipt_received__if</bpmn:incoming>
<bpmn:outgoing>Flow_Gateway_receipt_received__if__Task_reverse_receipt</bpmn:outgoing>
<bpmn:outgoing>Flow_Gateway_receipt_received__if__End_receipt_received</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:endEvent id="End_receipt_received" name="Receipt received">
<bpmn:incoming>Flow_Gateway_receipt_received__if__End_receipt_received</bpmn:incoming>
</bpmn:endEvent>
<bpmn:endEvent id="End_receipt_reversed" name="Receipt reversed">
<bpmn:incoming>Flow_Task_reverse_receipt__End_receipt_reversed</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_Gateway_receipt_none__if__Task_customer_pays" sourceRef="Gateway_receipt_none__if" targetRef="Task_customer_pays" />
<bpmn:sequenceFlow id="Flow_Gateway_receipt_none__if__Task_record_customer_receipt" sourceRef="Gateway_receipt_none__if" targetRef="Task_record_customer_receipt" />
<bpmn:sequenceFlow id="Flow_Gateway_receipt_none__if__Task_import_statement" sourceRef="Gateway_receipt_none__if" targetRef="Task_import_statement" />
<bpmn:sequenceFlow id="Flow_Start_receipt__Gateway_receipt_none__if" sourceRef="Start_receipt" targetRef="Gateway_receipt_none__if" />
<bpmn:sequenceFlow id="Flow_Gateway_ai_suggest_match__if__Task_ai_suggest_match" name="the receipt has unallocated money and the step is on" sourceRef="Gateway_ai_suggest_match__if" targetRef="Task_ai_suggest_match" />
<bpmn:sequenceFlow id="Flow_Gateway_ai_suggest_match__if__Gateway_ai_suggest_match__if_end" name="otherwise" sourceRef="Gateway_ai_suggest_match__if" targetRef="Gateway_ai_suggest_match__if_end" />
<bpmn:sequenceFlow id="Flow_Task_ai_suggest_match__Gateway_ai_suggest_match__if_end" sourceRef="Task_ai_suggest_match" targetRef="Gateway_ai_suggest_match__if_end" />
<bpmn:sequenceFlow id="Flow_Gateway_decide_match__if__Task_decide_match" name="an open suggestion; the receipt and the invoices still have the amounts it proposed" sourceRef="Gateway_decide_match__if" targetRef="Task_decide_match" />
<bpmn:sequenceFlow id="Flow_Gateway_decide_match__if__Gateway_decide_match__if_end" name="otherwise" sourceRef="Gateway_decide_match__if" targetRef="Gateway_decide_match__if_end" />
<bpmn:sequenceFlow id="Flow_Task_decide_match__Gateway_decide_match__if_end" sourceRef="Task_decide_match" targetRef="Gateway_decide_match__if_end" />
<bpmn:sequenceFlow id="Flow_Gateway_allocate__if__Task_allocate" name="never more than the receipt's remainder or an invoice's outstanding; the same currency; dated today" sourceRef="Gateway_allocate__if" targetRef="Task_allocate" />
<bpmn:sequenceFlow id="Flow_Gateway_allocate__if__Gateway_allocate__if_end" name="otherwise" sourceRef="Gateway_allocate__if" targetRef="Gateway_allocate__if_end" />
<bpmn:sequenceFlow id="Flow_Task_allocate__Gateway_allocate__if_end" sourceRef="Task_allocate" targetRef="Gateway_allocate__if_end" />
<bpmn:sequenceFlow id="Flow_Gateway_settle_difference__if__Task_settle_difference" name="the difference is within match_tolerance" sourceRef="Gateway_settle_difference__if" targetRef="Task_settle_difference" />
<bpmn:sequenceFlow id="Flow_Gateway_settle_difference__if__Gateway_settle_difference__if_end" name="otherwise" sourceRef="Gateway_settle_difference__if" targetRef="Gateway_settle_difference__if_end" />
<bpmn:sequenceFlow id="Flow_Task_settle_difference__Gateway_settle_difference__if_end" sourceRef="Task_settle_difference" targetRef="Gateway_settle_difference__if_end" />
<bpmn:sequenceFlow id="Flow_Gateway_unallocate__if__Task_unallocate" name="the row is not already reversed" sourceRef="Gateway_unallocate__if" targetRef="Task_unallocate" />
<bpmn:sequenceFlow id="Flow_Gateway_unallocate__if__Gateway_unallocate__if_end" name="otherwise" sourceRef="Gateway_unallocate__if" targetRef="Gateway_unallocate__if_end" />
<bpmn:sequenceFlow id="Flow_Task_unallocate__Gateway_unallocate__if_end" sourceRef="Task_unallocate" targetRef="Gateway_unallocate__if_end" />
<bpmn:sequenceFlow id="Flow_Gateway_apply_settlement_discount__if__Task_apply_settlement_discount" name="received within the invoice's discount window; the difference is exactly the terms' discount" sourceRef="Gateway_apply_settlement_discount__if" targetRef="Task_apply_settlement_discount" />
<bpmn:sequenceFlow id="Flow_Gateway_apply_settlement_discount__if__Gateway_apply_settlement_discount__if_end" name="otherwise" sourceRef="Gateway_apply_settlement_discount__if" targetRef="Gateway_apply_settlement_discount__if_end" />
<bpmn:sequenceFlow id="Flow_Task_apply_settlement_discount__Gateway_apply_settlement_discount__if_end" sourceRef="Task_apply_settlement_discount" targetRef="Gateway_apply_settlement_discount__if_end" />
<bpmn:sequenceFlow id="Flow_Gateway_record_cis_deduction__if__Task_record_cis_deduction" name="tax accepts the deduction (at most 30% of the labour)" sourceRef="Gateway_record_cis_deduction__if" targetRef="Task_record_cis_deduction" />
<bpmn:sequenceFlow id="Flow_Gateway_record_cis_deduction__if__Gateway_record_cis_deduction__if_end" name="otherwise" sourceRef="Gateway_record_cis_deduction__if" targetRef="Gateway_record_cis_deduction__if_end" />
<bpmn:sequenceFlow id="Flow_Task_record_cis_deduction__Gateway_record_cis_deduction__if_end" sourceRef="Task_record_cis_deduction" targetRef="Gateway_record_cis_deduction__if_end" />
<bpmn:sequenceFlow id="Flow_Gateway_allocate_to_payment_request__if__Task_allocate_to_payment_request" name="an issued request with something remaining" sourceRef="Gateway_allocate_to_payment_request__if" targetRef="Task_allocate_to_payment_request" />
<bpmn:sequenceFlow id="Flow_Gateway_allocate_to_payment_request__if__Gateway_allocate_to_payment_request__if_end" name="otherwise" sourceRef="Gateway_allocate_to_payment_request__if" targetRef="Gateway_allocate_to_payment_request__if_end" />
<bpmn:sequenceFlow id="Flow_Task_allocate_to_payment_request__Gateway_allocate_to_payment_request__if_end" sourceRef="Task_allocate_to_payment_request" targetRef="Gateway_allocate_to_payment_request__if_end" />
<bpmn:sequenceFlow id="Flow_Gateway_post_fx_difference__if__Task_post_fx_difference" name="an allocation whose receipt and invoice rates differ" sourceRef="Gateway_post_fx_difference__if" targetRef="Task_post_fx_difference" />
<bpmn:sequenceFlow id="Flow_Gateway_post_fx_difference__if__Gateway_post_fx_difference__if_end" name="otherwise" sourceRef="Gateway_post_fx_difference__if" targetRef="Gateway_post_fx_difference__if_end" />
<bpmn:sequenceFlow id="Flow_Task_post_fx_difference__Gateway_post_fx_difference__if_end" sourceRef="Task_post_fx_difference" targetRef="Gateway_post_fx_difference__if_end" />
<bpmn:sequenceFlow id="Flow_Gateway_ai_suggest_match__if_end__Gateway_decide_match__if" sourceRef="Gateway_ai_suggest_match__if_end" targetRef="Gateway_decide_match__if" />
<bpmn:sequenceFlow id="Flow_Gateway_decide_match__if_end__Gateway_allocate__if" sourceRef="Gateway_decide_match__if_end" targetRef="Gateway_allocate__if" />
<bpmn:sequenceFlow id="Flow_Gateway_allocate__if_end__Gateway_settle_difference__if" sourceRef="Gateway_allocate__if_end" targetRef="Gateway_settle_difference__if" />
<bpmn:sequenceFlow id="Flow_Gateway_settle_difference__if_end__Gateway_unallocate__if" sourceRef="Gateway_settle_difference__if_end" targetRef="Gateway_unallocate__if" />
<bpmn:sequenceFlow id="Flow_Gateway_unallocate__if_end__Gateway_apply_settlement_discount__if" sourceRef="Gateway_unallocate__if_end" targetRef="Gateway_apply_settlement_discount__if" />
<bpmn:sequenceFlow id="Flow_Gateway_apply_settlement_discount__if_end__Gateway_record_cis_deduction__if" sourceRef="Gateway_apply_settlement_discount__if_end" targetRef="Gateway_record_cis_deduction__if" />
<bpmn:sequenceFlow id="Flow_Gateway_record_cis_deduction__if_end__Gateway_allocate_to_payment_request__if" sourceRef="Gateway_record_cis_deduction__if_end" targetRef="Gateway_allocate_to_payment_request__if" />
<bpmn:sequenceFlow id="Flow_Gateway_allocate_to_payment_request__if_end__Gateway_post_fx_difference__if" sourceRef="Gateway_allocate_to_payment_request__if_end" targetRef="Gateway_post_fx_difference__if" />
<bpmn:sequenceFlow id="Flow_Gateway_receipt_received__if__Task_reverse_receipt" sourceRef="Gateway_receipt_received__if" targetRef="Task_reverse_receipt" />
<bpmn:sequenceFlow id="Flow_Gateway_receipt_received__if__End_receipt_received" name="done" sourceRef="Gateway_receipt_received__if" targetRef="End_receipt_received" />
<bpmn:sequenceFlow id="Flow_Gateway_post_fx_difference__if_end__Gateway_receipt_received__if" sourceRef="Gateway_post_fx_difference__if_end" targetRef="Gateway_receipt_received__if" />
<bpmn:sequenceFlow id="Flow_Task_customer_pays__Gateway_ai_suggest_match__if" sourceRef="Task_customer_pays" targetRef="Gateway_ai_suggest_match__if" />
<bpmn:sequenceFlow id="Flow_Task_record_customer_receipt__Gateway_ai_suggest_match__if" sourceRef="Task_record_customer_receipt" targetRef="Gateway_ai_suggest_match__if" />
<bpmn:sequenceFlow id="Flow_Task_import_statement__Gateway_ai_suggest_match__if" sourceRef="Task_import_statement" targetRef="Gateway_ai_suggest_match__if" />
<bpmn:sequenceFlow id="Flow_Task_reverse_receipt__End_receipt_reversed" sourceRef="Task_reverse_receipt" targetRef="End_receipt_reversed" />
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_payments_v4">
<bpmndi:BPMNPlane id="BPMNPlane_payments_v4" bpmnElement="Collaboration_payments_v4">
<bpmndi:BPMNShape id="Participant_payments_receipt_di" bpmnElement="Participant_payments_receipt" isHorizontal="true">
<dc:Bounds x="0" y="0" width="4190" height="660" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_receipt_customer_di" bpmnElement="Lane_receipt_customer" isHorizontal="true">
<dc:Bounds x="30" y="0" width="4160" height="140" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_receipt_cashier_di" bpmnElement="Lane_receipt_cashier" isHorizontal="true">
<dc:Bounds x="30" y="140" width="4160" height="260" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_receipt_system_di" bpmnElement="Lane_receipt_system" isHorizontal="true">
<dc:Bounds x="30" y="400" width="4160" height="260" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Start_receipt_di" bpmnElement="Start_receipt">
<dc:Bounds x="157" y="42" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_customer_pays_di" bpmnElement="Task_customer_pays">
<dc:Bounds x="465" y="20" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_record_customer_receipt_di" bpmnElement="Task_record_customer_receipt">
<dc:Bounds x="465" y="160" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_import_statement_di" bpmnElement="Task_import_statement">
<dc:Bounds x="465" y="420" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_ai_suggest_match_di" bpmnElement="Task_ai_suggest_match">
<dc:Bounds x="805" y="420" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_decide_match_di" bpmnElement="Task_decide_match">
<dc:Bounds x="1145" y="160" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_allocate_di" bpmnElement="Task_allocate">
<dc:Bounds x="1485" y="160" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_settle_difference_di" bpmnElement="Task_settle_difference">
<dc:Bounds x="1825" y="160" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_unallocate_di" bpmnElement="Task_unallocate">
<dc:Bounds x="2165" y="160" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_reverse_receipt_di" bpmnElement="Task_reverse_receipt">
<dc:Bounds x="3865" y="160" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_apply_settlement_discount_di" bpmnElement="Task_apply_settlement_discount">
<dc:Bounds x="2505" y="160" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_record_cis_deduction_di" bpmnElement="Task_record_cis_deduction">
<dc:Bounds x="2845" y="160" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_allocate_to_payment_request_di" bpmnElement="Task_allocate_to_payment_request">
<dc:Bounds x="3185" y="160" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_post_fx_difference_di" bpmnElement="Task_post_fx_difference">
<dc:Bounds x="3525" y="420" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_receipt_none__if_di" bpmnElement="Gateway_receipt_none__if">
<dc:Bounds x="320" y="35" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_ai_suggest_match__if_di" bpmnElement="Gateway_ai_suggest_match__if">
<dc:Bounds x="660" y="435" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_ai_suggest_match__if_end_di" bpmnElement="Gateway_ai_suggest_match__if_end">
<dc:Bounds x="830" y="555" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_decide_match__if_di" bpmnElement="Gateway_decide_match__if">
<dc:Bounds x="1000" y="175" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_decide_match__if_end_di" bpmnElement="Gateway_decide_match__if_end">
<dc:Bounds x="1170" y="295" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_allocate__if_di" bpmnElement="Gateway_allocate__if">
<dc:Bounds x="1340" y="175" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_allocate__if_end_di" bpmnElement="Gateway_allocate__if_end">
<dc:Bounds x="1510" y="295" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_settle_difference__if_di" bpmnElement="Gateway_settle_difference__if">
<dc:Bounds x="1680" y="175" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_settle_difference__if_end_di" bpmnElement="Gateway_settle_difference__if_end">
<dc:Bounds x="1850" y="295" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_unallocate__if_di" bpmnElement="Gateway_unallocate__if">
<dc:Bounds x="2020" y="175" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_unallocate__if_end_di" bpmnElement="Gateway_unallocate__if_end">
<dc:Bounds x="2190" y="295" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_apply_settlement_discount__if_di" bpmnElement="Gateway_apply_settlement_discount__if">
<dc:Bounds x="2360" y="175" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_apply_settlement_discount__if_end_di" bpmnElement="Gateway_apply_settlement_discount__if_end">
<dc:Bounds x="2530" y="295" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_record_cis_deduction__if_di" bpmnElement="Gateway_record_cis_deduction__if">
<dc:Bounds x="2700" y="175" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_record_cis_deduction__if_end_di" bpmnElement="Gateway_record_cis_deduction__if_end">
<dc:Bounds x="2870" y="295" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_allocate_to_payment_request__if_di" bpmnElement="Gateway_allocate_to_payment_request__if">
<dc:Bounds x="3040" y="175" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_allocate_to_payment_request__if_end_di" bpmnElement="Gateway_allocate_to_payment_request__if_end">
<dc:Bounds x="3210" y="295" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_post_fx_difference__if_di" bpmnElement="Gateway_post_fx_difference__if">
<dc:Bounds x="3380" y="435" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_post_fx_difference__if_end_di" bpmnElement="Gateway_post_fx_difference__if_end">
<dc:Bounds x="3550" y="555" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_receipt_received__if_di" bpmnElement="Gateway_receipt_received__if">
<dc:Bounds x="3720" y="175" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="End_receipt_received_di" bpmnElement="End_receipt_received">
<dc:Bounds x="3897" y="302" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="End_receipt_reversed_di" bpmnElement="End_receipt_reversed">
<dc:Bounds x="4067" y="182" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_Gateway_receipt_none__if__Task_customer_pays_di" bpmnElement="Flow_Gateway_receipt_none__if__Task_customer_pays">
<di:waypoint x="370" y="60" />
<di:waypoint x="465" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_receipt_none__if__Task_record_customer_receipt_di" bpmnElement="Flow_Gateway_receipt_none__if__Task_record_customer_receipt">
<di:waypoint x="370" y="60" />
<di:waypoint x="440" y="60" />
<di:waypoint x="440" y="200" />
<di:waypoint x="465" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_receipt_none__if__Task_import_statement_di" bpmnElement="Flow_Gateway_receipt_none__if__Task_import_statement">
<di:waypoint x="370" y="60" />
<di:waypoint x="440" y="60" />
<di:waypoint x="440" y="460" />
<di:waypoint x="465" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Start_receipt__Gateway_receipt_none__if_di" bpmnElement="Flow_Start_receipt__Gateway_receipt_none__if">
<di:waypoint x="193" y="60" />
<di:waypoint x="320" y="60" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_ai_suggest_match__if__Task_ai_suggest_match_di" bpmnElement="Flow_Gateway_ai_suggest_match__if__Task_ai_suggest_match">
<di:waypoint x="710" y="460" />
<di:waypoint x="805" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_ai_suggest_match__if__Gateway_ai_suggest_match__if_end_di" bpmnElement="Flow_Gateway_ai_suggest_match__if__Gateway_ai_suggest_match__if_end">
<di:waypoint x="710" y="460" />
<di:waypoint x="805" y="460" />
<di:waypoint x="805" y="580" />
<di:waypoint x="830" y="580" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_ai_suggest_match__Gateway_ai_suggest_match__if_end_di" bpmnElement="Flow_Task_ai_suggest_match__Gateway_ai_suggest_match__if_end">
<di:waypoint x="855" y="500" />
<di:waypoint x="855" y="620" />
<di:waypoint x="855" y="620" />
<di:waypoint x="855" y="605" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_decide_match__if__Task_decide_match_di" bpmnElement="Flow_Gateway_decide_match__if__Task_decide_match">
<di:waypoint x="1050" y="200" />
<di:waypoint x="1145" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_decide_match__if__Gateway_decide_match__if_end_di" bpmnElement="Flow_Gateway_decide_match__if__Gateway_decide_match__if_end">
<di:waypoint x="1050" y="200" />
<di:waypoint x="1145" y="200" />
<di:waypoint x="1145" y="320" />
<di:waypoint x="1170" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_decide_match__Gateway_decide_match__if_end_di" bpmnElement="Flow_Task_decide_match__Gateway_decide_match__if_end">
<di:waypoint x="1195" y="240" />
<di:waypoint x="1195" y="366" />
<di:waypoint x="1195" y="366" />
<di:waypoint x="1195" y="345" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_allocate__if__Task_allocate_di" bpmnElement="Flow_Gateway_allocate__if__Task_allocate">
<di:waypoint x="1390" y="200" />
<di:waypoint x="1485" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_allocate__if__Gateway_allocate__if_end_di" bpmnElement="Flow_Gateway_allocate__if__Gateway_allocate__if_end">
<di:waypoint x="1390" y="200" />
<di:waypoint x="1485" y="200" />
<di:waypoint x="1485" y="320" />
<di:waypoint x="1510" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_allocate__Gateway_allocate__if_end_di" bpmnElement="Flow_Task_allocate__Gateway_allocate__if_end">
<di:waypoint x="1535" y="240" />
<di:waypoint x="1535" y="372" />
<di:waypoint x="1535" y="372" />
<di:waypoint x="1535" y="345" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_settle_difference__if__Task_settle_difference_di" bpmnElement="Flow_Gateway_settle_difference__if__Task_settle_difference">
<di:waypoint x="1730" y="200" />
<di:waypoint x="1825" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_settle_difference__if__Gateway_settle_difference__if_end_di" bpmnElement="Flow_Gateway_settle_difference__if__Gateway_settle_difference__if_end">
<di:waypoint x="1730" y="200" />
<di:waypoint x="1825" y="200" />
<di:waypoint x="1825" y="320" />
<di:waypoint x="1850" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_settle_difference__Gateway_settle_difference__if_end_di" bpmnElement="Flow_Task_settle_difference__Gateway_settle_difference__if_end">
<di:waypoint x="1875" y="240" />
<di:waypoint x="1875" y="378" />
<di:waypoint x="1875" y="378" />
<di:waypoint x="1875" y="345" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_unallocate__if__Task_unallocate_di" bpmnElement="Flow_Gateway_unallocate__if__Task_unallocate">
<di:waypoint x="2070" y="200" />
<di:waypoint x="2165" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_unallocate__if__Gateway_unallocate__if_end_di" bpmnElement="Flow_Gateway_unallocate__if__Gateway_unallocate__if_end">
<di:waypoint x="2070" y="200" />
<di:waypoint x="2165" y="200" />
<di:waypoint x="2165" y="320" />
<di:waypoint x="2190" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_unallocate__Gateway_unallocate__if_end_di" bpmnElement="Flow_Task_unallocate__Gateway_unallocate__if_end">
<di:waypoint x="2215" y="240" />
<di:waypoint x="2215" y="360" />
<di:waypoint x="2215" y="360" />
<di:waypoint x="2215" y="345" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_apply_settlement_discount__if__Task_apply_settlement_discount_di" bpmnElement="Flow_Gateway_apply_settlement_discount__if__Task_apply_settlement_discount">
<di:waypoint x="2410" y="200" />
<di:waypoint x="2505" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_apply_settlement_discount__if__Gateway_apply_settlement_discount__if_end_di" bpmnElement="Flow_Gateway_apply_settlement_discount__if__Gateway_apply_settlement_discount__if_end">
<di:waypoint x="2410" y="200" />
<di:waypoint x="2505" y="200" />
<di:waypoint x="2505" y="320" />
<di:waypoint x="2530" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_apply_settlement_discount__Gateway_apply_settlement_discount__if_end_di" bpmnElement="Flow_Task_apply_settlement_discount__Gateway_apply_settlement_discount__if_end">
<di:waypoint x="2555" y="240" />
<di:waypoint x="2555" y="366" />
<di:waypoint x="2555" y="366" />
<di:waypoint x="2555" y="345" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_record_cis_deduction__if__Task_record_cis_deduction_di" bpmnElement="Flow_Gateway_record_cis_deduction__if__Task_record_cis_deduction">
<di:waypoint x="2750" y="200" />
<di:waypoint x="2845" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_record_cis_deduction__if__Gateway_record_cis_deduction__if_end_di" bpmnElement="Flow_Gateway_record_cis_deduction__if__Gateway_record_cis_deduction__if_end">
<di:waypoint x="2750" y="200" />
<di:waypoint x="2845" y="200" />
<di:waypoint x="2845" y="320" />
<di:waypoint x="2870" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_record_cis_deduction__Gateway_record_cis_deduction__if_end_di" bpmnElement="Flow_Task_record_cis_deduction__Gateway_record_cis_deduction__if_end">
<di:waypoint x="2895" y="240" />
<di:waypoint x="2895" y="372" />
<di:waypoint x="2895" y="372" />
<di:waypoint x="2895" y="345" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_allocate_to_payment_request__if__Task_allocate_to_payment_request_di" bpmnElement="Flow_Gateway_allocate_to_payment_request__if__Task_allocate_to_payment_request">
<di:waypoint x="3090" y="200" />
<di:waypoint x="3185" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_allocate_to_payment_request__if__Gateway_allocate_to_payment_request__if_end_di" bpmnElement="Flow_Gateway_allocate_to_payment_request__if__Gateway_allocate_to_payment_request__if_end">
<di:waypoint x="3090" y="200" />
<di:waypoint x="3185" y="200" />
<di:waypoint x="3185" y="320" />
<di:waypoint x="3210" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_allocate_to_payment_request__Gateway_allocate_to_payment_request__if_end_di" bpmnElement="Flow_Task_allocate_to_payment_request__Gateway_allocate_to_payment_request__if_end">
<di:waypoint x="3235" y="240" />
<di:waypoint x="3235" y="378" />
<di:waypoint x="3235" y="378" />
<di:waypoint x="3235" y="345" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_post_fx_difference__if__Task_post_fx_difference_di" bpmnElement="Flow_Gateway_post_fx_difference__if__Task_post_fx_difference">
<di:waypoint x="3430" y="460" />
<di:waypoint x="3525" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_post_fx_difference__if__Gateway_post_fx_difference__if_end_di" bpmnElement="Flow_Gateway_post_fx_difference__if__Gateway_post_fx_difference__if_end">
<di:waypoint x="3430" y="460" />
<di:waypoint x="3525" y="460" />
<di:waypoint x="3525" y="580" />
<di:waypoint x="3550" y="580" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_post_fx_difference__Gateway_post_fx_difference__if_end_di" bpmnElement="Flow_Task_post_fx_difference__Gateway_post_fx_difference__if_end">
<di:waypoint x="3575" y="500" />
<di:waypoint x="3575" y="620" />
<di:waypoint x="3575" y="620" />
<di:waypoint x="3575" y="605" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_ai_suggest_match__if_end__Gateway_decide_match__if_di" bpmnElement="Flow_Gateway_ai_suggest_match__if_end__Gateway_decide_match__if">
<di:waypoint x="880" y="580" />
<di:waypoint x="975" y="580" />
<di:waypoint x="975" y="200" />
<di:waypoint x="1000" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_decide_match__if_end__Gateway_allocate__if_di" bpmnElement="Flow_Gateway_decide_match__if_end__Gateway_allocate__if">
<di:waypoint x="1220" y="320" />
<di:waypoint x="1315" y="320" />
<di:waypoint x="1315" y="200" />
<di:waypoint x="1340" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_allocate__if_end__Gateway_settle_difference__if_di" bpmnElement="Flow_Gateway_allocate__if_end__Gateway_settle_difference__if">
<di:waypoint x="1560" y="320" />
<di:waypoint x="1655" y="320" />
<di:waypoint x="1655" y="200" />
<di:waypoint x="1680" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_settle_difference__if_end__Gateway_unallocate__if_di" bpmnElement="Flow_Gateway_settle_difference__if_end__Gateway_unallocate__if">
<di:waypoint x="1900" y="320" />
<di:waypoint x="1995" y="320" />
<di:waypoint x="1995" y="200" />
<di:waypoint x="2020" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_unallocate__if_end__Gateway_apply_settlement_discount__if_di" bpmnElement="Flow_Gateway_unallocate__if_end__Gateway_apply_settlement_discount__if">
<di:waypoint x="2240" y="320" />
<di:waypoint x="2335" y="320" />
<di:waypoint x="2335" y="200" />
<di:waypoint x="2360" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_apply_settlement_discount__if_end__Gateway_record_cis_deduction__if_di" bpmnElement="Flow_Gateway_apply_settlement_discount__if_end__Gateway_record_cis_deduction__if">
<di:waypoint x="2580" y="320" />
<di:waypoint x="2675" y="320" />
<di:waypoint x="2675" y="200" />
<di:waypoint x="2700" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_record_cis_deduction__if_end__Gateway_allocate_to_payment_request__if_di" bpmnElement="Flow_Gateway_record_cis_deduction__if_end__Gateway_allocate_to_payment_request__if">
<di:waypoint x="2920" y="320" />
<di:waypoint x="3015" y="320" />
<di:waypoint x="3015" y="200" />
<di:waypoint x="3040" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_allocate_to_payment_request__if_end__Gateway_post_fx_difference__if_di" bpmnElement="Flow_Gateway_allocate_to_payment_request__if_end__Gateway_post_fx_difference__if">
<di:waypoint x="3260" y="320" />
<di:waypoint x="3355" y="320" />
<di:waypoint x="3355" y="460" />
<di:waypoint x="3380" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_receipt_received__if__Task_reverse_receipt_di" bpmnElement="Flow_Gateway_receipt_received__if__Task_reverse_receipt">
<di:waypoint x="3770" y="200" />
<di:waypoint x="3865" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_receipt_received__if__End_receipt_received_di" bpmnElement="Flow_Gateway_receipt_received__if__End_receipt_received">
<di:waypoint x="3770" y="200" />
<di:waypoint x="3872" y="200" />
<di:waypoint x="3872" y="320" />
<di:waypoint x="3897" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Gateway_post_fx_difference__if_end__Gateway_receipt_received__if_di" bpmnElement="Flow_Gateway_post_fx_difference__if_end__Gateway_receipt_received__if">
<di:waypoint x="3600" y="580" />
<di:waypoint x="3695" y="580" />
<di:waypoint x="3695" y="200" />
<di:waypoint x="3720" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_customer_pays__Gateway_ai_suggest_match__if_di" bpmnElement="Flow_Task_customer_pays__Gateway_ai_suggest_match__if">
<di:waypoint x="565" y="60" />
<di:waypoint x="635" y="60" />
<di:waypoint x="635" y="460" />
<di:waypoint x="660" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_record_customer_receipt__Gateway_ai_suggest_match__if_di" bpmnElement="Flow_Task_record_customer_receipt__Gateway_ai_suggest_match__if">
<di:waypoint x="565" y="200" />
<di:waypoint x="635" y="200" />
<di:waypoint x="635" y="460" />
<di:waypoint x="660" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_import_statement__Gateway_ai_suggest_match__if_di" bpmnElement="Flow_Task_import_statement__Gateway_ai_suggest_match__if">
<di:waypoint x="565" y="460" />
<di:waypoint x="660" y="460" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_Task_reverse_receipt__End_receipt_reversed_di" bpmnElement="Flow_Task_reverse_receipt__End_receipt_reversed">
<di:waypoint x="3965" y="200" />
<di:waypoint x="4067" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Participant_customer_di" bpmnElement="Participant_customer" isHorizontal="true">
<dc:Bounds x="0" y="700" width="4190" height="60" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_Participant_customer__Task_customer_pays_di" bpmnElement="Flow_Participant_customer__Task_customer_pays">
<di:waypoint x="515" y="700" />
<di:waypoint x="515" y="100" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>