Fund Transfer between Branches (Accounting Dimensions)

We are trying to implement ERPNext in our organization. We have used a Fund Transfer module in the previous system, which works similar to Send to Warehouse and Receive at Warehouse mechanism in ERPNext Stock Entry Doctype.

We need to keep the fund in a temporary account called Fund in Transit.

There is an option Internal Transfer in Payment Entry Doctype, Can we use it like Internal Transfer in and Internal Transfer out where both transactions will be linked.

Or another approach will be fine if we can tweak something in Workflow for Payment Entry Doctype:
If workflow state is Fund Sent (Doctype state = 0) then the fund will be transferred to Fund in Transit
If Workflow state is Fund Received (Doctype State = 1) then the fund will be transferred to the destination account.

Thanks in Advance :slight_smile:

Using Accounting Dimensions, you can implement Branch Accounting assuming that each branch maintains it’s own bank and warehouse.
Even you can have centralized purchase and distribution to different branch as and when required.

As of now, Payment Entry doesn’t consider Accounting Dimensions. You can use Journal Entry instead.

We have done implementation of branch setup in ERPNext for couple of clients. Do let me know if you have any other queries.

Thanks for your reply @sanjay,
We have developed showroom accounting using accounting dimensions and it is working nicely. Payment entry also respects accounting dimensions.

But my question was, how to transfer funds between two branches (different Accounting Dimensions) and confirmation required from both branches.

Before second branch accepts, we need to keep the fund in a temporary account called Fund in Transit


Account		        Branch		     Debit		Credit
On Transfer
Fund in Transit	Branch-A	    100.00		
Cash Account	Head Office			            100.00

On Receipt
Cash Account	Branch-A	    100.00
Fund in Transit	Branch-A			            100.00

Create a custom doctype named as Fund Transfer (similar to Journal Entry)
Add workflow : 
	Transfer	: Submit Document and make GL Entry for Fund in Transit
	Receipt		: Make GL Entry for Fund Receipt
	(should be available to recipient branch)

I am not sure if this can be achieved without adding new doctype.

If the goal is to require two confirmations, one from sender and one from receiver, could you not just use two payment entries? First would be an internal transfer from Branch A-> Funds in Transit, and second would be a transfer from Funds in Transit → Branch B.


I think your workflow related customizations is a good idea for this and is doable. You just need to find a service provider that can do this for you. Or hire a consultant.

I’m guessing there is a delay between sending the funds from one location and receiving the funds at the other location.



We can do that as a last optional but we are looking for a smoother and easier option.


Thanks for sharing your thoughts.

Can you give me a detailed idea how can we achieve that, using custom scripts? Can I trigger a script on workflow option? Can a custom script create GL entries?

Thanks again

I am not a programmer, but research out the hooks and webhooks.

Hope this helps.



If it’s important that you account for an “in transit” period where the money is at neither A nor B, you’ll want to use two different transactions. In ERPNext, you never write to the General Ledger directly but rather certain doctypes (Journal Entry, Payment Entry, Sales Invoice, etc.) produce and manage GL ledger entries on your behalf. If your transfer requires events at different moments in time, you’ll need to create two of those documents as part of the workflow.

I would suggest one of two different approaches:

  • Use two Payment Entries as I mentioned earlier (or, alternately, Journal Entries), but add custom fields and a script to streamline the workflow. This is effectively how the stock entry process you mentioned works: there are two different documents – one Stock Entry on departure, one Stock Entry on arrival – but the interface provides an easy way to move the workflow forward. This is a “thin” customization, meaning it’s using standard ERPNext documents in a standard way, just with some client-side adjustments to improve quality of life for your users. Or,
  • Define a new doctype with custom logic that will create two Journal Entries programmatically according to your needs and hold reference to them. This is a bit more involved but still not especially complicated.

The documentation has good info on client-side scripting:

1 Like