Skip to content

Commit dc7c7d2

Browse files
committed
[ADD] Expenses: Expense cards
1 parent d60985c commit dc7c7d2

File tree

3 files changed

+338
-0
lines changed

3 files changed

+338
-0
lines changed

content/applications/finance/expenses.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Expenses
77
.. toctree::
88

99
expenses/expense_categories
10+
expenses/expense_cards
1011
expenses/log_expenses
1112
expenses/expense_reports
1213
expenses/approve_expenses
Lines changed: 337 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,337 @@
1+
=============
2+
Expense cards
3+
=============
4+
5+
Odoo offers physical and virtual expense cards, allowing for better expense tracking and management.
6+
Using expense cards allows for real time expense management, creating expense records as soon as an
7+
expense transaction occurs, allowing management greater visibility of expense costs as they are
8+
incurred.
9+
10+
The elimination of the need to :doc:`actively create expense records <log_expenses>` allows for a
11+
more streamlined expense workflow, with records automatically created as purchases are made.
12+
13+
To use expense cards, first a :ref:`card is configured <expenses/card-configure>`, then it is
14+
:ref:`activated <expenses/card-activate>`. Before employees can make purchases with their expense
15+
card, :ref:`funds must be added <expenses/add-funds>` to the company's Stripe account. Once there is
16+
money available in the account (this typically takes 2-3 business days for the transfer to Stripe),
17+
employees can use their expense cards, and the money is pulled from the company's Stripe account.
18+
19+
.. important::
20+
To create and use expense cards, the **Accounting** app **must** be installed.
21+
22+
.. note::
23+
Expense cards act like pre-paid debit cards, as they can **only** be used with a connected Stripe
24+
account, and **only** if funds are added to that account, to be drawn from.
25+
26+
.. seealso::
27+
:doc:`../payment_providers/stripe`
28+
29+
Availability
30+
============
31+
32+
Expense cards are currently available for the following countries:
33+
34+
+-------------+-------------+-------------+-------------+
35+
| Austria | Belgium | Croatia | Cyprus |
36+
+-------------+-------------+-------------+-------------+
37+
| Estonia | Finland | France | Germany |
38+
+-------------+-------------+-------------+-------------+
39+
| Greece | Ireland | Italy | Latvia |
40+
+-------------+-------------+-------------+-------------+
41+
| Lithuania | Luxembourg | Malta | Netherlands |
42+
+-------------+-------------+-------------+-------------+
43+
| Portugal | Slovakia | Slovenia | Spain |
44+
+-------------+-------------+-------------+-------------+
45+
46+
Only companies located in one of these countries are able to create and use expense cards. Check
47+
48+
.. _expenses/card-settings:
49+
50+
Configuration
51+
=============
52+
53+
Two settings must be configured to use expense cards. Navigate to :menuselection:`Expenses app -->
54+
Configuration --> Settings`. Tick the box next to :guilabel:`Expense Card`, then click
55+
:guilabel:`Save`. The :guilabel:`Settings` page reloads, and two fields now appear beneath the
56+
:guilabel:`Expense Card` option.
57+
58+
A :guilabel:`Journal` field with :guilabel:`Stripe Issuing` appears, populating the field. This is
59+
the default journal, and it is **not** recommended to alter this unless instructed by the accounting
60+
department.
61+
62+
Next, click the text link :guilabel:`terms and conditions` and an :guilabel:`Expense Cards Terms and
63+
Conditions` pop-up window loads, with all the details of the agreement. After this has been read,
64+
click :guilabel:`Close`, then tick the checkbox next to :guilabel:`I confirm agreeing to the terms
65+
and conditions` to accept the terms, then click :guilabel:`Save`.
66+
67+
.. note::
68+
The terms and conditions **must** be agreed to use expense cards.
69+
70+
After agreeing to the terms and conditions, click :icon:`oi-arrow-right` :guilabel:`Connect` that
71+
appears after the terms and conditions checkbox is ticked. A *Stripe* website loads, allowing for
72+
the configuration of the company's Stripe account with Odoo's **Expenses** app.
73+
74+
Follow the steps to sign in to the Stripe website with the proper account credentials, and configure
75+
any requested information. When completed, return to Odoo using the :icon:`oi-arrow-left`
76+
:guilabel:`Return to Odoo` link on the left side of the website, and click :guilabel:`Save`.
77+
78+
A green :guilabel:`Verified` tag now appears next to :icon:`oi-arrow-left` :guilabel:`Refresh`,
79+
indicating the account is properly configured.
80+
81+
.. _expenses/card-configure:
82+
83+
Configure expense cards
84+
=======================
85+
86+
To create and configure a new expense card, click :menuselection:`Cards` in the main **Expenses**
87+
app menu to view the :guilabel:`Cards` dashboard. Click :guilabel:`New` and a blank
88+
:guilabel:`Cards` form loads. Enter the following information on the form:
89+
90+
- :guilabel:`Card Name`: The first line on the card form is blank, and displays `Draft`. Enter a
91+
name for the card in this field. This does **not** need to be a person's name, it can be something
92+
descriptive to explain the use of the card.
93+
94+
.. example::
95+
An employee is going on a week-long business trip to Berlin to visit many clients. The employee
96+
needs to pay for meals, transportation, and other business-related expenses. Since this is a
97+
short trip, a virtual card is created to capture all the expenses, with the name `Business Trip
98+
- Berlin`.
99+
100+
The marketing department pays for many expenses throughout the year, from email marketing
101+
services, venue rentals for events, promotional merchandise, etc. Since the expenses do not
102+
have an end date, and it is used for an entire department, a physical card is ordered with the
103+
name `Marketing`.
104+
105+
- :guilabel:`Cardholder`: Select the person using the card from the drop-down menu. Once selected,
106+
the person's name populates the :guilabel:`Draft` field, above :guilabel:`Cardholder`.
107+
- :guilabel:`Update info`: Next to the cardholder's name, click :guilabel:`Update info` and a
108+
:guilabel:`Cardholder Configuration` pop-up window loads. Update the cardholder's name, birthday,
109+
phone number, email, and physical address. All the requested information **must** be populated, as
110+
it is used to create the expense card with Stripe, and to verify the cardholder's identity, when
111+
needed. If any information is missing from this form, the card **cannot** be created, and an error
112+
appears when creating or ordering the card.
113+
- :guilabel:`Type`: Click the radio button next to the desired *type* of expense card. Options are:
114+
115+
- :guilabel:`Physical`: A physical card is printed and mailed out to the employee. If selected, a
116+
:guilabel:`Delivery Address` field appears. Using the drop-down menu, select the employee or
117+
company address the card is mailed to.
118+
- :guilabel:`Virtual`: Virtual cards are available instantaneously once the card configuration is
119+
completed.
120+
121+
- :guilabel:`Company`: Select the company the expenses are associated with using the drop-down menu.
122+
Each card must be associated with a single company, and are **not** available for use between all
123+
companies or branches in the database.
124+
- :guilabel:`Stripe Journal`: :guilabel:`Stripe Issuing` populates this field by default, and cannot
125+
be modified.
126+
127+
Next, configure the following fields in the :guilabel:`Spending Policy` tab of the card form:
128+
129+
- :guilabel:`Countries`: Using the drop-down menu, select the countries the card is able to be used
130+
in. The company's country location populates this field, by default. All other countries the
131+
employee may travel to or purchase expensable items from, should be included in this list.
132+
- :guilabel:`Categories`: If the expense card is limited to purchase items within a specific
133+
*category*, select them using the drop-down menu. If this field is left blank, the card may be
134+
used for *any* expense category.
135+
136+
.. example::
137+
A company issues an expense card that is only authorized for airline, train, and taxi travel
138+
expenses.
139+
140+
To configure this, click into the :guilabel:`Category` field, and click :guilabel:`Search
141+
more...` at the bottom. In the :guilabel:`Search: Categories` pop-up window, click into the
142+
search bar and click :guilabel:`Transportation services` in the :icon:`fa-filter`
143+
:guilabel:`Filters` column.
144+
145+
Next, tick the checkboxes next to the desired transportation categories. In this example, only
146+
:guilabel:`Railroads`, :guilabel:`Passenger Railways`, :guilabel:`Taxicabs Limousines`, and
147+
:guilabel:`Airlines Air Carriers` are selected.
148+
149+
Click :guilabel:`Select` and the selected transportation categories now populate the
150+
:guilabel:`Categories` field.
151+
152+
- :guilabel:`Limit`: Configure the two spending limits for the card. The first configuration sets
153+
the total expense amount allowed during a specific time period. Using the drop-down menu after the
154+
word :guilabel:`per`, select the time period the limit applies to. The available options are:
155+
:guilabel:`Day`, :guilabel:`Week`, :guilabel:`Month`, :guilabel:`Year`, or :guilabel:`All Time`.
156+
Next, enter the maximum amount allowed for the selected time period.
157+
158+
Next, set the *per transaction* limit. Enter the maximum amount that can be charged on the expense
159+
card in a single transaction in the field.
160+
161+
.. example::
162+
A company allows employees to purchase airline tickets that are less than $1,000.00 total.
163+
Additionally, there is a monthly cap of $3,000.00 for all expenses.
164+
165+
The company would configure the limit as follows: `3,000.00` per :guilabel:`Month` and
166+
`1,000.00` per transaction.
167+
168+
.. important::
169+
Since the company Stripe account is linked for **all** Stripe transactions, not only expenses,
170+
card limits **must** be set to avoid large charges or transactions that may prematurely deplete
171+
the Stripe account.
172+
173+
.. image:: expense_cards/card-form.png
174+
:alt: An expense card form filled out for transportation and food only.
175+
176+
.. _expenses/card-activate:
177+
178+
Activate expense cards
179+
======================
180+
181+
Once an expense card is configured, the next step is to activate the cards. First, navigate to
182+
:menuselection:`Expenses app --> Cards`, and the :guilabel:`Cards` dashboard loads, displaying all
183+
expense cards in a Kanban view.
184+
185+
All cards display their status on a banner in the upper-right corner of each card. Statuses are
186+
either:
187+
188+
- :guilabel:`Draft`: The card form is filled out, but the card has not been requested or activated.
189+
- :guilabel:`Pending`: A physical card has been ordered, but not activated.
190+
- :guilabel:`Active`: The card is able to be used. This status does **not** display a status banner
191+
on the card.
192+
- :guilabel:`Paused`: A card has been put *on hold* and no transactions can be processed with this
193+
status.
194+
- :guilabel:`Blocked`: The physical or virtual card is *cancelled* and cannot be used.
195+
196+
Click on a card to activate, and the card form loads. Ensure all the fields are :ref:`configured
197+
<expenses/card-configure>`, then click either :guilabel:`Order` if requesting a physical card, or
198+
:guilabel:`Activate` if creating a virtual card.
199+
200+
If a physical card is requested, the card status changes to :guilabel:`Inactive`, while it is being
201+
printed and mailed to the selected address. Once the card arrives, follow the included instructions
202+
to activate the card.
203+
204+
If the card is a virtual card, once :guilabel:`Activate` is clicked, the status changes to
205+
:guilabel:`Active` and it is available for use.
206+
207+
Once the status of an expense card is :guilabel:`Active`, the user can use the card to purchase
208+
expensable items, as long as the purchases are within the limits set on the card.
209+
210+
.. _expenses/add-funds:
211+
212+
Add funds to Stripe account
213+
===========================
214+
215+
For employees to use their expense cards, funds must be available in the company's Stripe account,
216+
to make purchases against. To add funds to the company's Stripe account, open the **Accounting**
217+
app. On the :guilabel:`Stripe Issuing` Kanban card, click :guilabel:`Top-up`, and a
218+
:guilabel:`Top-up` pop-up window loads.
219+
220+
Enter the amount being transferred into the account in the :guilabel:`Amount` field. The
221+
:guilabel:`IBAN` and :guilabel:`BIC` fields are populated according to the Stripe configuration and
222+
cannot be changed. When configured, click :guilabel:`Topup`, and the transfer is initiated.
223+
224+
.. important::
225+
It typically takes 2-3 business days for transfers to be processed. Funds are **not** available
226+
until the transfer is complete.
227+
228+
Using expense cards
229+
===================
230+
231+
Using an expense card is almost identical to using any other credit or debit card. The only
232+
difference is if a :ref:`physical card <expenses/physical>` or a :ref:`virtual card
233+
<expenses/virtual>` is used.
234+
235+
When a charge is made using an expense card, an expense record is automatically created in the
236+
**Expenses** app, linked to the specific card. The next step is to attach the corresponding receipt.
237+
238+
.. note::
239+
It is best proactive to take a photo of a receipt as soon as it is received, to eliminate the
240+
risk of losing the receipt and having an expense reimbursement request denied.
241+
242+
Open the expense record by navigating to :menuselection:`Expenses app --> Cards`, and click on the
243+
specific card. Next, click the :icon:`fa-usd` :guilabel:`Expenses` smart button, and the
244+
:guilabel:`Expenses` dashboard loads for that card. Any expense that does *not* have a receipt
245+
attached to the record displays a :icon:`fa-credit-card` :guilabel:`Please upload the receipt.`
246+
247+
Click on the desired expense record to open the detailed expense form. Click the :guilabel:`Attach
248+
Receipt` button, and a file explorer loads. Navigate to the receipt, and click :guilabel:`Open` to
249+
select it and attach it to the expense.
250+
251+
Make any other adjustments to :ref:`the expense record <expenses/manual_expense>`, if necessary.
252+
Once the record is correct, click :guilabel:`Submit` to submit the receipt, or :guilabel:`Split`, if
253+
the receipt needs to be split between multiple expenses.
254+
255+
.. important::
256+
If a purchase is attempted that either is outside the listed countries, listed categories, or
257+
exceeds the transaction limit or total expense limit for the specified time period, the expense
258+
is denied and captured in the :guilabel:`Expenses` dashboard for the card, with a status of
259+
*Refused*.
260+
261+
To view the details of why the transaction was refused, click on the :icon:`fa-usd`
262+
:guilabel:`Expenses` smart button for the card, and click on the refused transaction. The details
263+
explaining why the transaction was refused appears in the chatter, authored by *OdooBot*.
264+
265+
.. _expenses/physical:
266+
267+
Physical card
268+
=============
269+
270+
When using a physical card, make charges in the same manner as a regular physical pre-paid debit
271+
card.
272+
273+
.. _expenses/virtual:
274+
275+
Virtual card
276+
============
277+
278+
If using a virtual card, there is one additional step to access the card information to use for
279+
purchases.
280+
281+
To obtain the card information, navigate to :menuselection:`Expenses app --> Cards` and click on the
282+
virtual card being used. Next, click into the :guilabel:`Card Details` tab, and two items appear:
283+
the expense card number, with only the last four digits displayed, and the expiration date.
284+
285+
To view the full details, click :icon:`fa-eye` :guilabel:`View Details`, and a :guilabel:`Two-Factor
286+
Authentication` pop-up window loads. Enter the six-digit authentication code that is texted to the
287+
cardholder's phone number. The card appears in the pop-up window, with all the information
288+
displayed: the card number, expiration date, and security code. When done, close the window by
289+
clicking :guilabel:`X`.
290+
291+
Lost cards
292+
==========
293+
294+
When a physical card is lost, or if credentials for a virtual card have been compromised, the cards
295+
must be updated in the **Expenses** app so they cannot be used. This is referred to in Odoo as
296+
*blocking*.
297+
298+
To stop any charges on a card, navigate to :menuselection:`Expenses app --> Cards`, and click on the
299+
specific card being deactivated. On the card form, click the :guilabel:`Block` button, and a
300+
:guilabel:`Block a Card` pop-up window loads.
301+
302+
Click into the field next to :guilabel:`Reason`, and select the reason the card is being blocked.
303+
The options are :guilabel:`Lost`, :guilabel:`Stolen`, or :guilabel:`Other`. After making a
304+
selection, click :guilabel:`Block`, and the card is unable to be used, and a red :guilabel:`Blocked`
305+
banner appears on the card in the :guilabel:`Cards` dashboard view.
306+
307+
.. example::
308+
An employee is given a virtual expense card to use for an upcoming business trip. The employee
309+
uses this card to purchase an airline ticket and a hotel room, one month before the scheduled
310+
trip.
311+
312+
A week before the trip, they receive an email from the airline, explaining there has been a data
313+
breach, and customer names, contact information, and purchase details including credit card
314+
numbers have been leaked.
315+
316+
The employee reaches out to their manager, explaining the situation. The manager opens the
317+
virtual expense card, and blocks the card using the reason :guilabel:`Other`. Then the manager
318+
issues another virtual card for the employee to use for their business trip.
319+
320+
Temporary card pauses
321+
=====================
322+
323+
When an employee is out of office for an extended period of time, such as a vacation, or an illness,
324+
it is recommended to temporarily deactivate their card to prevent any fraudulent charges. This is
325+
referred to in Odoo as *pausing* a card.
326+
327+
To pause a card, navigate to :menuselection:`Expenses app --> Cards`, and click on the specific card
328+
being paused. On the card form, click :guilabel:`Pause`, and the card is unable to be used until it
329+
is activated.
330+
331+
.. example::
332+
An employee in the sales department has a physical expense card to use for client meetings. They
333+
recently welcomed a new child, and will be out of office on parental leave for three months.
334+
335+
On the employee's last day, their manager opens the expense card record, and clicks
336+
:guilabel:`Pause`. When the employee returns to work, the manager opens the expense card form and
337+
clicks :guilabel:`Active` to reactivate the card.
22.9 KB
Loading

0 commit comments

Comments
 (0)