Tsallake zuwa abun ciki

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 pacs008

REST 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

EndpointBayani
GET /healthBinciken lafiya — yana mayar da matsayin sabis
POST /validateTabbatar 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 /docsSwagger UI mai hulɗa don bincika da gwada duk ƙarshen hanyoyi

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.xml
json
{
  "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.csv

Yanayin 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:latest
bash
docker run --rm   -e PACS008_LOG_LEVEL=INFO   -v $PWD/examples:/data   -p 8000:8000 pacs008:latest

Tabbatar 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.

FiliBayaniƘayyadaddun sharadi
msg_idMai ganowa saƙoMafi yawan haruffa 35
creation_date_timeTambarin lokaci na ƙirƙiraTsarin ISO 8601
nb_of_txsAdadin cinikiAdadi mai kyau
settlement_methodHanyar biyan kuɗiCLRG, INDA, COVE, ko INGA
end_to_end_idMai ganowa daga farko zuwa ƙarsheMafi yawan haruffa 35
interbank_settlement_amountAdadin biyan kuɗi tsakanin bankunaAdadi mai dasimai, misali `25000.00`
interbank_settlement_currencyKuɗin biyan kuɗiLambar ISO 4217
charge_bearerMai ɗaukar cajinDEBT, CRED, SHAR, ko SLEV
debtor_nameSunan mai bashiMafi yawan haruffa 140
debtor_agent_bicBIC na wakilin mai bashiHaruffa 8 ko 11
creditor_agent_bicBIC na wakilin mai ba da bashiHaruffa 8 ko 11
creditor_nameSunan mai ba da bashiMafi yawan haruffa 140

Filayen da suka danganci siga Filayen da suka danganci siga

FiliBayaniƘayyadaddun sharadi
uetrNassarin ciniki na musamman daga farko zuwa ƙarsheTsarin UUID — yana samuwa daga v08
mandate_idMai ganowa iziniYana samuwa daga v10
expiry_date_timeTambarin lokaci na ƙarewar saƙoYana samuwa a v13

An ƙarshe sabunta: