Bayyanar API na pacs008 Bayyanar API na pacs008
Aikin yana ba da REST API da CLI don ayyukan sarrafa saƙonnin biyan kuɗi.
Shigarwa Shigarwa
Shigar da fakitin daga PyPI. Ana buƙatar Python 3.9.2 ko na baya.
bash
python -m pip install pacs008REST API REST API
Fara sabar FastAPI ɗin da aka gina a ciki don samar da ƙarshen HTTP don tabbatarwa da ƙirƙira.
Fara sabar Fara sabar
bash
uvicorn pacs008.api.app:app --reload --host 0.0.0.0 --port 8000Ƙarshen hanyoyi Ƙarshen hanyoyi
| Endpoint | Bayani |
|---|---|
GET /health | Binciken lafiya — yana mayar da matsayin sabis |
POST /validate | Tabbatar da bayanan biyan kuɗi akan tsari ba tare da ƙirƙirar XML ba |
POST /generate | Ƙirƙirar XML a daidai lokaci kuma mayar da fayil |
POST /generate/async | Ƙaddamar da aikin ƙirƙira mara daidaituwa |
GET /status/{job_id} | Bincika matsayin aiki ta ID |
GET /download/{job_id} | Saukar da XML ɗin da aka ƙirƙira bayan aikin ya kammala |
DELETE /jobs/{job_id} | Soke aikin da ke jira ko wanda ke gudana |
GET /docs | Swagger UI mai hulɗa don bincika da gwada duk ƙarshen hanyoyi |
pacs.002.001.12— Rahoton matsayin biyan kuɗi tsakanin cibiyoyin kuɗipacs.003.001.09— Cire kuɗi kai tsaye na abokin ciniki tsakanin cibiyoyin kuɗipacs.004.001.11— Mayar da biyan kuɗipacs.007.001.11— Soke biyan kuɗi tsakanin cibiyoyin kuɗipacs.008.001.13— Canja wurin kuɗi na abokin ciniki tsakanin cibiyoyin kuɗipacs.009.001.10— Canja wurin kuɗi tsakanin cibiyoyin kuɗipacs.010.001.05— Cire kuɗi kai tsaye tsakanin cibiyoyin kuɗipacs.028.001.05— Neman matsayin biyan kuɗi tsakanin cibiyoyin kuɗi
Misalin tabbatarwa Misalin tabbatarwa
Ƙaddamar da bayanan biyan kuɗi don tabbatarwa kafin ƙirƙirar 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": []
}Misalin ƙirƙira a daidai lokaci Misalin ƙirƙira a daidai lokaci
Ƙirƙirar fayilin XML pacs.008.001.13 daga bayanan 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.xmlƘirƙira mara daidaituwa Ƙirƙira mara daidaituwa
Don manyan fayiloli ko amfani da bututu, ƙaddamar da aikin mara daidaituwa kuma bincika har sai ya kammala.
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
Hanyar layin umarni tana karɓar fayilin bayanai, sigar saƙo, samfuri, da tsari. Tana tabbatar da shigarwa kuma tana rubuta XML ɗin da aka ƙirƙira zuwa kundin fitarwa.
Amfani na asali Amfani na asali
bash
pacs008 -t <message_type> \
-m <template_file> \
-s <schema_file> \
-d <data_file>Misali Misali
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.csvYanayin gwaji-bushewa Yanayin gwaji-bushewa
Yi amfani da --dry-run don tabbatar da bayanan shigarwa ba tare da ƙirƙirar XML ba. Lambar fitarwa tana nuna ko tabbatarwa ta wuce (0) ko ta gaza (1).
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-runƘara --verbose don cikakken fitarwa yayin ƙirƙira.
Python API Python API
Yi amfani da ɗakin karatu kai tsaye a cikin rubutun Python ko sabis.
Ƙirƙirar XML daga bayanan biyan kuɗi Ƙirƙirar XML daga bayanan biyan kuɗi
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)Binciken biyayya na SWIFT Binciken biyayya na SWIFT
Bincika kuma tsaftace bayanai akan ƙa'idodin haruffa da tsawon fili na SWIFT kafin ƙirƙira.
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
Gudanar da API a cikin akwati ta amfani da Dockerfile ɗin da aka haɗa.
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:latestTabbatar da IBAN da BIC Tabbatar da IBAN da BIC
Tabbatar da masu ganowa na kuɗi daban da ƙirƙirar XML.
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)Kwararar bayanai Kwararar bayanai
Ɗaukar manyan bayanan bayanai a cikin guntaye masu iya saiti don iyakance amfani da ƙwaƙwalwar ajiya.
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())Sabis na tabbatarwa Sabis na tabbatarwa
Gudanar da cikakken bututun tabbatarwa kafin ƙirƙira ta hanyar shirye-shirye.
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)Filayen bayanai da ake buƙata Filayen bayanai da ake buƙata
Kowane rikodin biyan kuɗi dole ne ya ƙunshi waɗannan filaye. Filayen da suka danganci siga an lissafa su a ƙasa.
| Fili | Bayani | Ƙayyadaddun sharadi |
|---|---|---|
msg_id | Mai ganowa saƙo | Mafi yawan haruffa 35 |
creation_date_time | Tambarin lokaci na ƙirƙira | Tsarin ISO 8601 |
nb_of_txs | Adadin ciniki | Adadi mai kyau |
settlement_method | Hanyar biyan kuɗi | CLRG, INDA, COVE, ko INGA |
end_to_end_id | Mai ganowa daga farko zuwa ƙarshe | Mafi yawan haruffa 35 |
interbank_settlement_amount | Adadin biyan kuɗi tsakanin bankuna | Adadi mai dasimai, misali `25000.00` |
interbank_settlement_currency | Kuɗin biyan kuɗi | Lambar ISO 4217 |
charge_bearer | Mai ɗaukar cajin | DEBT, CRED, SHAR, ko SLEV |
debtor_name | Sunan mai bashi | Mafi yawan haruffa 140 |
debtor_agent_bic | BIC na wakilin mai bashi | Haruffa 8 ko 11 |
creditor_agent_bic | BIC na wakilin mai ba da bashi | Haruffa 8 ko 11 |
creditor_name | Sunan mai ba da bashi | Mafi yawan haruffa 140 |
Filayen da suka danganci siga Filayen da suka danganci siga
| Fili | Bayani | Ƙayyadaddun sharadi |
|---|---|---|
uetr | Nassarin ciniki na musamman daga farko zuwa ƙarshe | Tsarin UUID — yana samuwa daga v08 |
mandate_id | Mai ganowa izini | Yana samuwa daga v10 |
expiry_date_time | Tambarin lokaci na ƙarewar saƙo | Yana samuwa a v13 |