Skip to content

Official Python SDK for Ohmyfin API - cross-border transaction tracking and validation

License

Notifications You must be signed in to change notification settings

ohmyfin/ohmyfin-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ohmyfin Python SDK

PyPI version Python versions License: MIT

Official Python SDK for the Ohmyfin API - SWIFT transaction tracking, validation, and correspondent banking data.

Ohmyfin (previously known as TrackMySwift) provides real-time SWIFT payment tracking, transaction validation, and Standard Settlement Instructions (SSI) data for financial institutions and businesses.

Features

  • Transaction Tracking - Track SWIFT payments in real-time using UETR or reference
  • Payment Validation - Validate transactions before sending (BIC, IBAN, sanctions)
  • SSI Data - Access Standard Settlement Instructions and correspondent banking data
  • Status Updates - Report transaction status (for financial institutions)

Installation

pip install ohmyfin

Quick Start

Get your API key at https://ohmyfin.ai/for-banks

from ohmyfin import Ohmyfin

client = Ohmyfin(api_key='your-api-key')

# Track a transaction
result = client.track(
    uetr='97ed4827-7b6f-4491-a06f-b548d5a7512d',
    amount=10000,
    date='2024-01-15',
    currency='USD'
)

print(result['status'])  # 'success', 'in progress', 'rejected', etc.

API Reference

Constructor

client = Ohmyfin(
    api_key='your-api-key',        # Required - get yours at https://ohmyfin.ai/for-banks
    base_url='https://ohmyfin.ai',  # Optional
    timeout=30                      # Optional - request timeout in seconds
)

track()

Track a SWIFT transaction by UETR or reference.

result = client.track(
    uetr='97ed4827-7b6f-4491-a06f-b548d5a7512d',  # or use 'ref'
    amount=10000,
    date='2024-01-15',
    currency='USD'
)

Response:

{
    'status': 'in progress',  # 'success', 'rejected', 'on hold', 'unknown'
    'lastupdate': '2024-01-15',
    'details': [
        {
            'id': 0,
            'bank': 'JP MORGAN CHASE',
            'swift': 'CHASUS33',
            'status': 'success',
            'reason': '',
            'route': 'confirmed'
        }
    ],
    'limits': {'daily': 100, 'monthly': 1000, 'annual': 10000}
}

validate()

Validate a transaction before sending.

result = client.validate(
    beneficiary_bic='DEUTDEFF',
    currency='EUR',
    beneficiary_iban='DE89370400440532013000',
    correspondent_bic='COBADEFF',  # Optional
    sender_bic='CHASUS33'          # Optional
)

Response:

{
    'beneficiary_bic': {'status': 'ok'},
    'beneficiary_iban': {'status': 'ok'},
    'correspondent_bic': {
        'status': 'warning',
        'details': 'Not the preferred correspondent'
    },
    'avg_business_days': 1,
    'available_correspondents': [
        {'corresBIC': 'COBADEFF', 'is_preferred': True}
    ]
}

get_ssi()

Get Standard Settlement Instructions for a bank.

ssi = client.get_ssi(swift='DEUTDEFF', currency='EUR')

Response:

{
    'correspondents': [
        {
            'id': 1,
            'bank': 'COMMERZBANK AG',
            'swift': 'COBADEFF',
            'currency': 'EUR',
            'account': '400886700401',
            'is_preferred': True
        }
    ],
    'currencies': ['EUR', 'USD', 'GBP']
}

change()

Report transaction status updates (for financial institutions).

client.change(
    uetr='97ed4827-7b6f-4491-a06f-b548d5a7512d',
    amount=10000,
    date='2024-01-15',
    currency='USD',
    status='success',     # 'in process', 'success', 'rejected', 'on hold'
    role='correspondent'  # 'originator', 'beneficiary', 'intermediary', 'correspondent', 'other'
)

Error Handling

from ohmyfin import Ohmyfin, OhmyfinError

try:
    result = client.track(...)
except OhmyfinError as e:
    print(e.status_code)  # HTTP status code
    print(e.errors)       # Validation errors
    print(e.message)      # Error message

Links

About Ohmyfin

Ohmyfin (previously known as TrackMySwift) is a software platform providing transaction tracking, validation, and correspondent banking reference data. We serve individuals, businesses, and financial institutions worldwide.

We do not provide any financial services.

Trademarks

Ohmyfin is a registered trademark of Ohmyfin Limited. Trademark application no. UK00004317799. All rights reserved.

SWIFT, BIC, UETR, and related terms are trademarks owned by S.W.I.F.T. SC, headquartered at Avenue Adele 1, 1310 La Hulpe, Belgium. Ohmyfin is not affiliated with S.W.I.F.T. SC. Other product and company names mentioned herein may be trademarks of their respective owners.

License

MIT License - see LICENSE file.

About

Official Python SDK for Ohmyfin API - cross-border transaction tracking and validation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages