বিষয়বস্তুতে যান

pacs008 API রেফারেন্স pacs008 API রেফারেন্স

প্রকল্পটি অপারেশনাল পেমেন্ট বার্তা প্রক্রিয়াকরণ ওয়ার্কফ্লোর জন্য REST API এবং CLI উভয়ই প্রদান করে।

ইনস্টলেশন ইনস্টলেশন

PyPI থেকে প্যাকেজ ইনস্টল করুন। Python 3.9.2 বা পরবর্তী সংস্করণ প্রয়োজন।

bash
python -m pip install pacs008

REST API REST API

যাচাইকরণ এবং জেনারেশনের জন্য HTTP এন্ডপয়েন্ট পরিবেশন করতে বিল্ট-ইন FastAPI সার্ভার শুরু করুন।

সার্ভার শুরু করুন সার্ভার শুরু করুন

bash
uvicorn pacs008.api.app:app --reload --host 0.0.0.0 --port 8000

এন্ডপয়েন্ট এন্ডপয়েন্ট

Endpointবিবরণ
GET /healthহেলথ চেক — পরিষেবার অবস্থা ফেরত দেয়
POST /validateXML তৈরি না করে স্কিমার বিপরীতে পেমেন্ট ডেটা যাচাই করুন
POST /generateসিঙ্ক্রোনাসভাবে XML তৈরি করুন এবং ফাইল ফেরত দিন
POST /generate/asyncএকটি অ্যাসিঙ্ক্রোনাস জেনারেশন কাজ জমা দিন
GET /status/{job_id}ID দ্বারা কাজের অবস্থা পোল করুন
GET /download/{job_id}কাজ সম্পন্ন হলে তৈরি XML ডাউনলোড করুন
DELETE /jobs/{job_id}মুলতুবি বা চলমান কাজ বাতিল করুন
GET /docsসমস্ত এন্ডপয়েন্ট অন্বেষণ এবং পরীক্ষা করার জন্য ইন্টারেক্টিভ Swagger UI
  • pacs.002.001.12 — আর্থিক প্রতিষ্ঠানের মধ্যে পেমেন্ট স্ট্যাটাস রিপোর্ট
  • pacs.003.001.09 — আর্থিক প্রতিষ্ঠানের মধ্যে গ্রাহক ডাইরেক্ট ডেবিট
  • pacs.004.001.11 — পেমেন্ট রিটার্ন
  • pacs.007.001.11 — আর্থিক প্রতিষ্ঠানের মধ্যে পেমেন্ট রিভার্সাল
  • pacs.008.001.13 — আর্থিক প্রতিষ্ঠানের মধ্যে গ্রাহক ক্রেডিট ট্রান্সফার
  • pacs.009.001.10 — আর্থিক প্রতিষ্ঠানের মধ্যে ক্রেডিট ট্রান্সফার
  • pacs.010.001.05 — আর্থিক প্রতিষ্ঠানের মধ্যে ডাইরেক্ট ডেবিট
  • pacs.028.001.05 — আর্থিক প্রতিষ্ঠানের মধ্যে পেমেন্ট স্ট্যাটাস অনুরোধ

যাচাইকরণ উদাহরণ যাচাইকরণ উদাহরণ

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": []
}

সিঙ্ক্রোনাস জেনারেশন উদাহরণ সিঙ্ক্রোনাস জেনারেশন উদাহরণ

JSON পেলোড থেকে একটি pacs.008.001.13 XML ফাইল তৈরি করুন।

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

অ্যাসিঙ্ক্রোনাস জেনারেশন অ্যাসিঙ্ক্রোনাস জেনারেশন

বড় ফাইল বা পাইপলাইন ব্যবহারের জন্য, একটি অ্যাসিঙ্ক্রোনাস কাজ জমা দিন এবং সম্পন্ন হওয়া পর্যন্ত পোল করুন।

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

কমান্ড-লাইন ইন্টারফেস একটি ডেটা ফাইল, বার্তা সংস্করণ, টেমপ্লেট এবং স্কিমা নেয়। এটি ইনপুট যাচাই করে এবং আউটপুট ডিরেক্টরিতে তৈরি XML লেখে।

মৌলিক ব্যবহার মৌলিক ব্যবহার

bash
pacs008 -t <message_type> \
  -m <template_file> \
  -s <schema_file> \
  -d <data_file>

উদাহরণ উদাহরণ

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

ড্রাই-রান মোড ড্রাই-রান মোড

XML তৈরি না করে ইনপুট ডেটা যাচাই করতে --dry-run ব্যবহার করুন। এক্সিট কোড নির্দেশ করে যাচাই পাস হয়েছে (0) বা ব্যর্থ হয়েছে (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

জেনারেশনের সময় বিস্তারিত আউটপুটের জন্য --verbose যোগ করুন।


Python API Python API

Python স্ক্রিপ্ট বা পরিষেবাগুলিতে সরাসরি লাইব্রেরি ব্যবহার করুন।

পেমেন্ট রেকর্ড থেকে XML তৈরি করুন পেমেন্ট রেকর্ড থেকে XML তৈরি করুন

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 কমপ্লায়েন্স চেক SWIFT কমপ্লায়েন্স চেক

জেনারেশনের আগে SWIFT ক্যারেক্টার এবং ফিল্ড-দৈর্ঘ্য নিয়মের বিপরীতে ডেটা যাচাই এবং পরিষ্কার করুন।

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

বান্ডেলড Dockerfile ব্যবহার করে একটি কন্টেইনারে API চালান।

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

IBAN এবং BIC যাচাইকরণ IBAN এবং BIC যাচাইকরণ

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)

স্ট্রিমিং স্ট্রিমিং

মেমরি ব্যবহার সীমিত করতে কনফিগারযোগ্য চাঙ্কে বড় ডেটাসেট লোড করুন।

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())

যাচাইকরণ পরিষেবা যাচাইকরণ পরিষেবা

প্রোগ্রাম্যাটিকভাবে সম্পূর্ণ প্রি-জেনারেশন যাচাইকরণ পাইপলাইন চালান।

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)

প্রয়োজনীয় ডেটা ফিল্ড প্রয়োজনীয় ডেটা ফিল্ড

প্রতিটি পেমেন্ট রেকর্ডে এই ফিল্ডগুলি অন্তর্ভুক্ত থাকতে হবে। সংস্করণ-নির্দিষ্ট ফিল্ডগুলি প্রযোজ্য হলে উল্লেখ করা হয়েছে।

ফিল্ডবিবরণসীমাবদ্ধতা
msg_idবার্তা শনাক্তকারীসর্বোচ্চ 35 অক্ষর
creation_date_timeসৃষ্টি টাইমস্ট্যাম্পISO 8601 ফরম্যাট
nb_of_txsলেনদেনের সংখ্যাধনাত্মক পূর্ণসংখ্যা
settlement_methodনিষ্পত্তি পদ্ধতিCLRG, INDA, COVE, বা INGA
end_to_end_idএন্ড-টু-এন্ড শনাক্তকারীসর্বোচ্চ 35 অক্ষর
interbank_settlement_amountআন্তঃব্যাংক নিষ্পত্তি পরিমাণদশমিক, যেমন `25000.00`
interbank_settlement_currencyনিষ্পত্তি মুদ্রাISO 4217 কোড
charge_bearerচার্জ বহনকারীDEBT, CRED, SHAR, বা SLEV
debtor_nameডেবিটরের নামসর্বোচ্চ 140 অক্ষর
debtor_agent_bicডেবিটর এজেন্ট BIC8 বা 11 অক্ষর
creditor_agent_bicক্রেডিটর এজেন্ট BIC8 বা 11 অক্ষর
creditor_nameক্রেডিটরের নামসর্বোচ্চ 140 অক্ষর

সংস্করণ-নির্দিষ্ট ফিল্ড সংস্করণ-নির্দিষ্ট ফিল্ড

ফিল্ডবিবরণসীমাবদ্ধতা
uetrঅনন্য এন্ড-টু-এন্ড লেনদেন রেফারেন্সUUID ফরম্যাট — v08 থেকে উপলব্ধ
mandate_idম্যান্ডেট শনাক্তকারীv10 থেকে উপলব্ধ
expiry_date_timeবার্তা মেয়াদ শেষের টাইমস্ট্যাম্পv13-তে উপলব্ধ

সর্বশেষ আপডেট: