pacs008 API Reference pacs008 API Reference
Ang proyekto ay nagbibigay ng parehong REST API at CLI para sa mga operational na workflow ng pagproseso ng mensahe ng pagbabayad.
Pag-install Pag-install
I-install ang package mula sa PyPI. Nangangailangan ng Python 3.9.2 o mas bago.
bash
python -m pip install pacs008REST API REST API
Simulan ang built-in na FastAPI server upang magbigay ng HTTP endpoint para sa validation at generation.
Simulan ang server Simulan ang server
bash
uvicorn pacs008.api.app:app --reload --host 0.0.0.0 --port 8000Mga Endpoint Mga Endpoint
| Endpoint | Paglalarawan |
|---|---|
GET /health | Health check — nagbabalik ng katayuan ng serbisyo |
POST /validate | I-validate ang datos ng pagbabayad laban sa schema nang hindi gumagawa ng XML |
POST /generate | Gumawa ng XML nang sabay-sabay at ibalik ang file |
POST /generate/async | Magsumite ng asynchronous na trabaho ng generation |
GET /status/{job_id} | Suriin ang katayuan ng trabaho ayon sa ID |
GET /download/{job_id} | I-download ang nabuong XML pagkatapos makumpleto ang trabaho |
DELETE /jobs/{job_id} | Kanselahin ang nakabinbin o tumatakbong trabaho |
GET /docs | Interactive na Swagger UI para sa paggalugad at pagsubok ng lahat ng endpoint |
pacs.002.001.12— Ulat ng kalagayan ng pagbabayad sa pagitan ng mga institusyong pinansyalpacs.003.001.09— Direct debit ng kliyente sa pagitan ng mga institusyong pinansyalpacs.004.001.11— Pagbabalik ng bayadpacs.007.001.11— Pagbaligtad ng bayad sa pagitan ng mga institusyong pinansyalpacs.008.001.13— Credit transfer ng kliyente sa pagitan ng mga institusyong pinansyalpacs.009.001.10— Credit transfer sa pagitan ng mga institusyong pinansyalpacs.010.001.05— Direct debit sa pagitan ng mga institusyong pinansyalpacs.028.001.05— Kahilingan ng kalagayan ng bayad sa pagitan ng mga institusyong pinansyal
Halimbawa ng validation Halimbawa ng validation
Magsumite ng datos ng pagbabayad para sa validation bago gumawa ng XML.
bash
curl -X POST http://localhost:8000/api/validate \
-H "Content-Type: application/json" \
-d '{
"message_type": "pacs.008.001.13",
"data": [{
"msg_id": "MSG-2026-001",
"creation_date_time": "2026-01-15T10:30:00",
"nb_of_txs": "1",
"settlement_method": "CLRG",
"interbank_settlement_date": "2026-01-15",
"end_to_end_id": "E2E-INV-2026-001",
"interbank_settlement_amount": "25000.00",
"interbank_settlement_currency": "EUR",
"charge_bearer": "SHAR",
"debtor_name": "Acme Corp GmbH",
"debtor_agent_bic": "DEUTDEFF",
"creditor_agent_bic": "COBADEFF",
"creditor_name": "Widget Industries SA"
}]
}'json
{
"valid": true,
"message_type": "pacs.008.001.13",
"errors": [],
"warnings": []
}Halimbawa ng synchronous na generation Halimbawa ng synchronous na generation
Gumawa ng XML file na pacs.008.001.13 mula sa datos na JSON.
bash
curl -X POST http://localhost:8000/api/generate \
-H "Content-Type: application/json" \
-d '{
"message_type": "pacs.008.001.13",
"template": "pacs008/templates/pacs.008.001.13/template.xml",
"schema": "pacs008/templates/pacs.008.001.13/pacs.008.001.13.xsd",
"data": [{
"msg_id": "MSG-2026-001",
"creation_date_time": "2026-01-15T10:30:00",
"nb_of_txs": "1",
"settlement_method": "CLRG",
"interbank_settlement_date": "2026-01-15",
"end_to_end_id": "E2E-INV-2026-001",
"tx_id": "TX-001",
"interbank_settlement_amount": "25000.00",
"interbank_settlement_currency": "EUR",
"charge_bearer": "SHAR",
"debtor_name": "Acme Corp GmbH",
"debtor_agent_bic": "DEUTDEFF",
"creditor_agent_bic": "COBADEFF",
"creditor_name": "Widget Industries SA"
}]
}' --output pacs008_output.xmlAsynchronous na generation Asynchronous na generation
Para sa mas malalaking file o paggamit sa pipeline, magsumite ng asynchronous na trabaho at mag-poll hanggang sa makumpleto.
bash
# Submit the job
JOB=$(curl -s -X POST http://localhost:8000/api/generate/async \
-H "Content-Type: application/json" \
-d '{"message_type":"pacs.008.001.13","data":[...]}')
JOB_ID=$(echo $JOB | jq -r '.job_id')
# Poll for completion
curl http://localhost:8000/api/status/$JOB_ID
# Download the result
curl http://localhost:8000/api/download/$JOB_ID --output result.xmljson
{
"job_id": "8f7f0d4b-7df9-4d1a-8d47-19f4f28b6d38",
"status": "completed",
"message_type": "pacs.008.001.13",
"download_url": "/api/download/8f7f0d4b-7df9-4d1a-8d47-19f4f28b6d38"
}CLI CLI
Ang command-line interface ay tumatanggap ng data file, bersyon ng mensahe, template, at schema. Vine-validate nito ang input at isinusulat ang nabuong XML sa output directory.
Pangunahing paggamit Pangunahing paggamit
bash
pacs008 -t <message_type> \
-m <template_file> \
-s <schema_file> \
-d <data_file>Halimbawa Halimbawa
bash
pacs008 -t pacs.008.001.13 \
-m pacs008/templates/pacs.008.001.13/template.xml \
-s pacs008/templates/pacs.008.001.13/pacs.008.001.13.xsd \
-d payments.csvDry-run mode Dry-run mode
Gamitin ang --dry-run para i-validate ang input data nang hindi gumagawa ng XML. Ang exit code ay nagpapakita kung pumasa (0) o nabigo (1) ang validation.
bash
pacs008 -t pacs.008.001.13 \
-m pacs008/templates/pacs.008.001.13/template.xml \
-s pacs008/templates/pacs.008.001.13/pacs.008.001.13.xsd \
-d payments.csv \
--dry-runMagdagdag ng --verbose para sa detalyadong output sa panahon ng generation.
Python API Python API
Gamitin ang library nang direkta sa mga Python script o serbisyo.
Gumawa ng XML mula sa mga record ng pagbabayad Gumawa ng XML mula sa mga record ng pagbabayad
python
from pacs008 import generate_xml_string
payments = [{
"msg_id": "MSG-2026-001",
"creation_date_time": "2026-01-15T10:30:00",
"nb_of_txs": "1",
"settlement_method": "CLRG",
"interbank_settlement_date": "2026-01-15",
"end_to_end_id": "E2E-INV-2026-001",
"tx_id": "TX-001",
"interbank_settlement_amount": "25000.00",
"interbank_settlement_currency": "EUR",
"charge_bearer": "SHAR",
"debtor_name": "Acme Corp GmbH",
"debtor_agent_bic": "DEUTDEFF",
"creditor_agent_bic": "COBADEFF",
"creditor_name": "Widget Industries SA",
}]
xml = generate_xml_string(
payments,
"pacs.008.001.13",
"pacs008/templates/pacs.008.001.13/template.xml",
"pacs008/templates/pacs.008.001.13/pacs.008.001.13.xsd",
)
print(xml)SWIFT compliance check SWIFT compliance check
Suriin at linisin ang datos laban sa mga patakaran ng character at haba ng field ng SWIFT bago ang generation.
python
from pacs008.compliance import cleanse_data_with_report
raw = [{"debtor_name": "Müller & Söhne™", "msg_id": "X" * 50}]
clean, report = cleanse_data_with_report(raw)
print(report.summary())Docker Docker
Patakbuhin ang API sa isang container gamit ang kasama na Dockerfile.
bash
docker build -t pacs008:latest .
docker run -p 8000:8000 pacs008:latestbash
docker run --rm -e PACS008_LOG_LEVEL=INFO -v $PWD/examples:/data -p 8000:8000 pacs008:latestValidation ng IBAN at BIC Validation ng IBAN at BIC
I-validate ang mga financial identifier nang hiwalay sa XML generation.
python
from pacs008.validation import validate_iban, validate_bic
is_valid, error = validate_iban("DE89370400440532013000", strict=False)
is_valid, error = validate_bic("DEUTDEFF", strict=False)Streaming Streaming
I-load ang malalaking dataset sa mga nako-configure na tipak upang limitahan ang paggamit ng memory.
python
from pacs008.data.loader import load_payment_data_streaming
for chunk in load_payment_data_streaming("large_payments.csv", chunk_size=500):
print(f"Processing {len(chunk)} records")python
from pacs008.validation import validate_batch
for chunk in load_payment_data_streaming("large_payments.csv", chunk_size=500):
report = validate_batch(chunk, "pacs.008.001.13")
print(report.summary())Serbisyo ng validation Serbisyo ng validation
Patakbuhin ang buong pre-generation validation pipeline nang programmatically.
python
from pacs008.validation import ValidationService, ValidationConfig
service = ValidationService()
report = service.validate_all(ValidationConfig(
xml_message_type="pacs.008.001.13",
xml_template_file_path="pacs008/templates/pacs.008.001.13/template.xml",
xsd_schema_file_path="pacs008/templates/pacs.008.001.13/pacs.008.001.13.xsd",
data_file_path="payments.csv",
))
print(report.is_valid, report.errors)Mga kinakailangang data field Mga kinakailangang data field
Bawat record ng pagbabayad ay dapat maglaman ng mga field na ito. Ang mga field na tukoy sa bersyon ay nakalista sa ibaba.
| Field | Paglalarawan | Limitasyon |
|---|---|---|
msg_id | Identifier ng mensahe | Pinakamataas na 35 character |
creation_date_time | Timestamp ng paglikha | Format na ISO 8601 |
nb_of_txs | Bilang ng mga transaksyon | Positibong integer |
settlement_method | Paraan ng settlement | CLRG, INDA, COVE, o INGA |
end_to_end_id | End-to-end identifier | Pinakamataas na 35 character |
interbank_settlement_amount | Interbank settlement amount | Decimal, hal. `25000.00` |
interbank_settlement_currency | Settlement currency | ISO 4217 code |
charge_bearer | Charge bearer | DEBT, CRED, SHAR, o SLEV |
debtor_name | Pangalan ng debtor | Pinakamataas na 140 character |
debtor_agent_bic | BIC ng debtor agent | 8 o 11 character |
creditor_agent_bic | BIC ng creditor agent | 8 o 11 character |
creditor_name | Pangalan ng creditor | Pinakamataas na 140 character |
Mga field na tukoy sa bersyon Mga field na tukoy sa bersyon
| Field | Paglalarawan | Limitasyon |
|---|---|---|
uetr | Natatanging reperensya ng transaksyon mula simula hanggang dulo | Format na UUID — available mula v08 |
mandate_id | Identifier ng mandato | Available mula v10 |
expiry_date_time | Timestamp ng pag-expire ng mensahe | Available sa v13 |