Skip to main content

Set up trading partners

Core module For: Compliance manager, Warehouse staff, Sales and purchasing Checked on 18.0.0.2.0

Record each company you buy DSCSA products from or sell them to as a trading partner: its DSCSA role, its GLN (Global Location Number) and its address. The role decides which licenses make the partner an authorized trading partner; the GLN names it in DSCSA files. See the glossary for the abbreviations.

Note

These procedures use the Contacts app. Without it, customers are under Sales ‣ Orders ‣ Customers and vendors under Purchase ‣ Orders ‣ Vendors; the form is the same.

Onboard a trading partner: DSCSA role, GLN and address​

Create the partner as a company, with its full address, GLN and DSCSA role. Then record its license (MD-08): until a valid license is on file, orders and transfers of DSCSA products with the partner are refused.

Background: the GLN is the number that names a company or a location in a DSCSA file.

Who: Rx Tracking User or Manager, with a right that lets you create and edit contacts (Contact Creation, or Sales, Purchase or Inventory Administrator).

Requires: Rx Tracking (DSCSA). Works in Odoo Community and Enterprise.

Before you start:

  • You have the partner's legal name, address and GLN, and you know its role: manufacturer, repackager, wholesale distributor, third-party logistics provider (3PL) or dispenser.
  • A pharmacy location with its own state license is a company of its own, not an address of another company.
  1. Go to Contacts and select New.

  2. Select Company above the name, and enter the name, for example Pinecrest Pharmacy.

  3. Fill in the address. Select Country first (for example United States), then State, so that the state list shows that country's states.

  4. In GLN, enter the partner's 13-digit GLN, for example 0614141002085. Spaces are allowed.

    Result: GS1 Prefix Length appears under GLN, showing 0. Leave it at 0 (not set) unless the partner gave you its GS1 company prefix length.

  5. Select the DSCSA tab, and in DSCSA Role select the partner's role, for example Dispenser.

    Result: the tab shows Authorized Trading Partner (cleared) and, for a dispenser, Small Business Dispenser.

  6. Select the save icon.

    Result: a yellow banner says why the partner is not authorized yet, for example "Pinecrest Pharmacy (dispenser) has no valid state license: none on file." The Licenses smart button shows 0.

    Screenshot of the DSCSA tab of Riverside Community Pharmacy: the role Dispenser, Authorized Trading Partner selected, and its licenses.

Result: the partner is a company with a DSCSA role and a GLN. It is listed under the Not Authorized (DSCSA Role Set) filter until a valid license is recorded. Records: the contact (company); the changes are logged in its chatter.

If it doesn't work

  • "GLN '…' has an invalid check digit: the last digit should be …, not …." or "GLN '…' must have 13 digits, it has …." (in an Oh snap! dialog): the GLN was mistyped. Select Stay here and correct it. See Error: "GLN '…' has an invalid check digit".
  • "The GS1 company prefix length must be between 6 and 12 …": clear GS1 Prefix Length or enter 6 to 12. See the same entry.
  • There is no DSCSA tab: you have no Rx Tracking right. Ask an Rx Tracking User or Manager to set the role.
  • The form can't be edited or there is no New button: you have no right to create or edit contacts. Ask an administrator.
  • "Only DSCSA users can set or change the DSCSA role of …" (when importing partners with a DSCSA Role column): the importing user has no Rx Tracking right. See Error: "Only DSCSA users can …".
Known issue

Known issue (PF-W03-02): Rx Tracking User doesn't include the right to edit contacts, so a warehouse user with only Rx Tracking User and Inventory User sees the partner form read-only and can't set a role or the small-dispenser flag. Give the users who onboard partners Contact Creation (shown on the user form in developer mode) or an administrator right in Sales, Purchase or Inventory.

Next: Record and verify a trading partner's license

Add a contact person or a delivery address​

  1. On the partner's form, select the Contacts & Addresses tab, then Add.

    Result: the Create Contact dialog opens.

  2. Select Contact or Delivery Address, fill in the name and address, then select Save & Close.

  3. Select the save icon.

    Result: the contact or address is listed on the Contacts & Addresses tab.

  4. To check its DSCSA status, go to Contacts, search for the contact's name (for example Jamie Park), open it and select the DSCSA tab. The dialog that opens when you select the contact on the company's Contacts & Addresses tab has no tabs.

    Result: the DSCSA tab shows the company's role read-only, the company's authorization status, and the note "The DSCSA role and licenses of this contact are managed on its company."

Result: the contact or address belongs to the company and shares its role and authorization. A delivery address may share the company's GLN or have its own GLN (on its full form, opened from Contacts). Records: the new contact.

A duplicated partner has no DSCSA role, no licenses and no small-dispenser flag: set them again.

Check whether a partner is an authorized trading partner, and why not​

Check a partner before its first order, when an order or a transfer is refused, or in a periodic review. The status is for today and for your current company, and it is the same for the company and all its contacts and addresses.

Background: the license checks exist because of DSCSA's rule on authorized trading partners and the license each role needs (FD&C Act § 582(c)(3), § 581(2); see Compliance background). Your procedure decides how often you re-check licenses at their source; the software checks the recorded licenses every time.

Who: Rx Tracking User or Manager

Requires: Rx Tracking (DSCSA). Works in Odoo Community and Enterprise.

  1. Go to Contacts and open the partner's company.

  2. Select the DSCSA tab.

    Result: Authorized Trading Partner is selected when the partner is authorized. When it isn't and the partner has a role, a yellow banner gives each reason, for example "Lakeview Apothecary (dispenser) has no valid state license: license DEMO-CA-PHY-61177 expired on 2026-09-11." The license list shows each license's Status.

    Screenshot of the DSCSA tab of Lakeview Apothecary with the yellow banner saying its state license expired.

  3. Fix what the banner names (see the table below).

Result: you know whether orders and transfers of DSCSA products with the partner are allowed today, and why not. Nothing is changed.

The banner saysCauseFix
"… has no DSCSA role set, so it is not an authorized trading partner." (only in a refusal: without a role there is no banner)no DSCSA Roleset the role (MD-04)
"… has no valid state license: none on file."no license of the type the role needsrecord and verify it (MD-08)
"… none on file (a DEA registration does not count)."only a DEA registration is on filerecord the state license (MD-08)
"… license NUMBER is unverified."the license was never verifiedverify it (MD-08 step 7)
"… license NUMBER expired on DATE."the license's Expiry Date has passedrecord the renewed license (MD-10)
"… license NUMBER is not in force until DATE."the license's Issue Date is in the futurewait for that date, or check the date
"… has no valid FDA 503(e) annual report: …"the company setting that also asks wholesalers and 3PLs for an FDA 503(e) annual report is onrecord and verify the report (MD-08)

Which license counts depends on the role: dispensers, wholesale distributors and 3PLs need a State license; manufacturers and repackagers an FDA establishment registration. A DEA registration never counts. Archived licenses don't count.

List the partners that are not authorized​

  1. Go to Contacts. Open the search options (the ▾ at the end of the search bar) and select Not Authorized (DSCSA Role Set).

    Result: the list shows each company with a DSCSA role that isn't authorized today, and its contacts and addresses.

Result: the partners to follow up. The filters Authorized Trading Partners and Small Dispensers, and the grouping DSCSA Role, are in the same menu. A partner without a role is in neither filter: DSCSA products can't be sold to or bought from it.

Known issue

Known issue (PF-A01-09): sales and purchasing staff without an Rx Tracking right don't see the DSCSA tab or these filters. They learn that a partner isn't authorized only when confirming an order is refused, and then need an Rx Tracking user to look up why. See Error: "… not an authorized trading partner" when you have no Rx Tracking right.

Flag a small-dispenser customer and record its attestation​

Record that a dispenser customer attested it is a small business dispenser. Until the company's small-dispenser exemption end date, such a customer may receive lot-level transaction data: scanning is optional on its deliveries, and its documents list lots and have no EPCIS (Electronic Product Code Information Services) file.

Background: the flag exists because of FDA's letter of 2026-08-06 on small business dispensers (FD&C Act § 582(g)(1); FDA exemption letters of 2024-10-09 and 2026-08-06; see Compliance background). Your procedure decides how you obtain and keep the customer's attestation; the software records its date.

Who: Rx Tracking User or Manager, with a right to edit contacts (as in MD-04).

Requires: Rx Tracking (DSCSA). Works in Odoo Community and Enterprise.

Before you start:

  1. Go to Contacts, open the customer's company and select the DSCSA tab.

  2. Select Small Business Dispenser.

    Result: Small Dispenser Attested On (required) and Exemption in Effect appear.

  3. In Small Dispenser Attested On, enter the date the customer attested it: today or earlier.

  4. Select the save icon.

    Result: Exemption in Effect is selected.

    Screenshot of the DSCSA tab of Hillcrest Family Pharmacy: the small-dispenser flag and date set. Exemption in Effect is outlined.

Result: the customer is an exempt small dispenser until the company's exemption end date, and it is listed under the Small Dispensers filter of Contacts. Its contacts and addresses follow the company. Records: the contact (company); the chatter logs Small Business Dispenser and Small Dispenser Attested On.

To end the exemption for this customer, clear Small Business Dispenser and save: the date is cleared too. Changing the role away from Dispenser clears both.

If it doesn't work

  • "Invalid fields: Small Dispenser Attested On": the date is empty. Enter it.
  • "The small-dispenser attestation date of … is in the future.": enter the date the customer actually attested. See Error: "… is flagged as a small business dispenser …".
  • Small Business Dispenser isn't shown: the partner's role isn't Dispenser.
  • Exemption in Effect stays cleared: the attestation date is after today, or the company's exemption end date has passed or is empty (CFG-07).

A contact that is moved out of the company (its company removed, or made a company itself) loses the flag, with the chatter note "Small-dispenser exemption cleared: … is no longer a contact of … and must attest for itself."

Next: Ship at lot level to an exempt small dispenser

Fix a missing GLN before shipping​

When a sales order with DSCSA products is confirmed while our company or the buyer has no GLN, the software warns but doesn't block: the delivery would post its DSCSA document without an EPCIS file, and the file can't be added to a posted document later. Add the GLN before you validate the delivery.

Who: to add a partner's GLN: a user who can edit contacts; to add our company's GLN: an administrator. The warning reaches everyone who opens the order or the delivery.

Requires: Rx Tracking (DSCSA). Works in Odoo Community and Enterprise.

Before you start:

  • You have the missing GLN.
  1. Open the delivery (Inventory ‣ Operations ‣ Deliveries) or its sales order, and read the warning. On the delivery it is a yellow banner:

    The DSCSA document of this shipment will have no EPCIS file: the buyer Foothill Care Pharmacy has no GLN. Add the GLN before
    validating; the file can't be added to a posted document later.

    Screenshot of the delivery form for Foothill Care Pharmacy with the yellow banner saying the buyer has no GLN.

    Result: you know whose GLN is missing: "the buyer NAME" or "our company NAME". Don't validate the delivery yet.

  2. If our company's GLN is missing, ask an administrator to set it (Set the company GLN and GS1 prefix length), then go to step 5.

  3. Go to Contacts and open the buyer named in the warning. In GLN, enter its GLN, for example 0614141002092.

  4. Select the save icon.

  5. Reopen the delivery.

    Result: the banner is gone.

  6. On the contact that lacked the GLN (the buyer, or our company's contact), the chatter shows the planned activity GLN missing: "Add the GLN of … before shipping". Select Mark Done.

    Result: the chatter logs "GLN missing done …".

Result: the delivery's DSCSA document gets its EPCIS file when you validate the delivery (Scan the serials of a delivery and validate it). Records: the contact with its GLN; the done activity in its chatter.

The warning is also an internal note on the sales order ("DSCSA warning: the delivery of this order will get its DSCSA document without an EPCIS file, because …"), and the activity goes to the Default User of the GLN missing activity type, else to the first Rx Tracking Manager of the company (Choose who receives the DSCSA reminder activities). Orders confirmed while one GLN missing activity is open share it. There is no warning for an order with only non-DSCSA products, or for an exempt small dispenser, whose documents have no EPCIS file anyway.

If it doesn't work

Known issue

Known issue (PF-A03-06): the GLN missing activity doesn't close by itself when the GLN is added. Mark it done by hand (step 6).