Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This is a sample script to generate files in WIPO Standard ST.92 Patent Priority Document Data Package (PDDP) ZIP files, for testing REGISTRATION of priority documents in WIPO DAS REST API V2. 

It will generate the files for any IP office and IP right type this via the configuration in pddp_config.json.

Info
titleDisclaimer

This is a sample script to help users prepare their sample files for testing the REST API, it does not cover all possible cases available in ST.92.

If you run into errors or you want an specific case, feel free to modify it to suit your needs.


Table of Contents
typeflat

Info

Get the files here: 4.-ST.92.zip (version of 20.03.2026)

Contents of the package:

Code Block
├── generate_pddp_ib.py       # Generator script
├── pddp_config.json          # Configuration file (office, year, number patterns)
├── samples/                  # Reference ZIP packages
│   ├── Patent_FR_FR2420100_20250101.zip
│   ├── Design_FR_01519876_20250101.zip
│   └── Trademark_FR_018975509_20250101.zip
└── ST92_XSD/                 # Schema definitions
    ├── PriorityDocumentIndex_V2_0.xsd
    ├── ST92PDDPIndex_V1_1.xsd
    ├── ST96_Common_V9_0.xsd
    ├── ST96_Design_V9_0.xsd
    ├── ST96_Trademark_V9_0.xsd
    └── ...

Configuration (`pddp_config.json`)

Code Block
languagejson
titlejson
{
  "office_code": "IB",
  "filing_year": 2026,

  "patent":    { "enabled": true,  "number_regex": "PCT/IB{year}/\\d{6}" },
  "design":    { "enabled": false, "number_regex": "IB{year}\\d{6}" },
  "trademark": { "enabled": false, "number_regex": "IB\\d{9}" }
}
```


FieldDescription
office_codeWIPO ST.3 office code (e.g. `IB`, `FR`, `EP`, `US`)
filing_yearYear used for random filing dates (Jan 1 → today)
*.enabledWhether this IP type is generated by default
*.number_regexPattern for generating application numbers (see below)

Number regex syntax

TokenMeaning
`\d{N}` or `[0-9]{N}`N random decimal digits
`{year}`Replaced by `filing_year` before digit substitution
Any other characterKept as-is (literal)


Examples for common offices:

1.- Priority number format in use by IP Office - DAS Wiki - WIPO Wiki

OfficeIP type`number_regex`Example output
`IB`Patent`PCT/IB{year}/\d{6}``PCT/IB2026/050123`
`FR`Patent`FR\d{7}``FR2420100`
`FR`Design`\d{8}``01519876`
`FR`Trademark`\d{9}``018975602`
`EP`Patent`EP\d{8}``EP23123456`
`EP`Patent`EP\d{8}``EP23123456`
`US`Patent`US\d{7}``US1234567`

All options

OptionDefaultDescription
`--config FILE``pddp_config.json`JSON configuration file
`--ip-type TYPE``all``patent`, `design`, `trademark`, or `all` (enabled in config)
`--count N``1`Packages to generate per IP type
`--output-dir DIR``.`Output directory
`--number APPNUM`randomFull application number override (single package only)
`--seq-listing`offAdd ST.25 sequence listing to patent packages

Generated ZIP structure

Section
Column

Patent_{office}_{app-number}_{YYYYMMDD}.zip
├── PriorityDocumentIndex.xml
├── MandatoryArtifacts/
│   ├── *_PriorityDocument.pdf
│   ├── *_CertificatePage.pdf
│   └── *_SequenceListing_ST25.txt    ← only with --seq-listing
└── SupplementaryArtifacts/
    ├── *_BibliographicData.xml
    └── *_Description/
        ├── *_IntermediateDocuments.pdf
        └── *_ClassificationData.xml

Column

Design_{office}_{app-number}_{YYYYMMDD}.zip
├── PriorityDocumentIndex.xml
├── MandatoryArtifacts/
│   ├── *_PriorityDocument.pdf
│   ├── *_CertificationPage.pdf
│   └── *.stl                         ← 3D representation (ASCII STL)
└── SupplementaryArtifacts/
    ├── *_RegistrationCertificate.pdf
    ├── *-001.png                      ← 2D view 1
    ├── *-002.png                      ← 2D view 2
    ├── *_BibliographicData.xml
    ├── *_ClassificationData.xml
    └── *_IntermediateDocuments.pdf

Column

Trademark_{office}_{app-number}_{YYYYMMDD}.zip
├── PriorityDocumentIndex.xml
├── MandatoryArtifacts/
│   ├── *_PriorityDocument.pdf
│   ├── *_CertificatePage.pdf
│   └── *.wav                          ← sound representation (silent WAV)
└── SupplementaryArtifacts/
    ├── *.png                          ← mark image
    ├── *_BibliographicData.xml
    ├── *_ClassificationData.xml
    └── *_IntermediateDocuments.pdf

Usage

Code Block
languageshell
# Generate all enabled types from config (default: 1 of each)
python3 generate_pddp_ib.py

# Generate only patents, 5 packages
python3 generate_pddp_ib.py --ip-type patent --count 5

# Generate all enabled types into a folder
python3 generate_pddp_ib.py --count 3 --output-dir ./output

# Use a different config (e.g. FR office)
python3 generate_pddp_ib.py --config fr_config.json --ip-type patent

# Fix a specific application number (single package only)
python3 generate_pddp_ib.py --ip-type patent --number "PCT/IB2026/050123"

# Include ST.25 sequence listing in patent packages
python3 generate_pddp_ib.py --ip-type patent --count 2 --seq-listing

Example output

Code Block
languageshell
>>>>python3 generate_pddp_ib.py --count 3 --output-dir ./output
[1] Patent_IB_PCT-IB2026-330734_20260220.zip  (patent, PCT/IB2026/330734, filed 2026-02-20, 5,989 bytes)
[2] Patent_IB_PCT-IB2026-790994_20260109.zip  (patent, PCT/IB2026/790994, filed 2026-01-09, 5,991 bytes)
[3] Patent_IB_PCT-IB2026-731153_20260117.zip  (patent, PCT/IB2026/731153, filed 2026-01-17, 5,988 bytes)

Done. 3 package(s) written to './output'.

Image Added
Image Added

Note
titleRequirements
Python 3.10+ — no external dependencies.