Skip to main content

Framework/tookit berbasis pydantic dan FastAPI untuk implementasi SNAP (Standar Nasional Open API Pembayaran) Indonesia

Project description

snapapi

Framework/tookit berbasis pydantic dan FastAPI untuk implementasi SNAP (Standar Nasional Open API Pembayaran) Indonesia

Transaksi

Virtual Account:

  1. Inquiry, Service Code '24'
  2. Payment, Service Code '25'

Iya, masih banyak Transaksi yang harus dibuat Modelnya :)

Python

snapapi dibuat dengan menggunakan Python versi 3.8.20, semoga bisa digunakan dibanyak OS yang mungkin masih belum support python terbaru.

snapapi menggunakan type hints yang diverifikasi dengan mypy.

Dependency

SNAP-API membutuhkan module sbb:

  1. pydantic https://pydantic.dev
    Dasar dari validasi model agar sesuai dengan spesifikasi yang telah ditetapkan oleh Bank Indonesia dan ASPI (Asosiasi Sistem Pembayaran Indonesia). Core validasi menggunakan rust sehingga pydantic dikenal sebagai model validator tercepat di python.

  2. pycryptodome https://www.pycryptodome.org
    Digunakan untuk membuat dan meverifikasi Asymmetric Signature dengan algorithma SHA256withRSA.

  3. PyJWT https://pyjwt.readthedocs.io/en/latest
    Dibutuhkan untuk membuat dan meverifikasi Access Token berbasis JWT.

  4. fastapi https://fastapi.tiangolo.com
    Lighweight and fast framework API berdasarkan OpenAPI.

  5. asyncer https://asyncer.tiangolo.com
    Thin layer module yang membuat sync method (spt class Crypto) menjadi async. Dengan module, dijamin end-to-end API menjadi full async.

Optional

  1. uvicorn https://www.uvicorn.org
    ASGI web server

  2. aiocache https://aiocache.aio-libs.org/en/latest
    Digunakan untuk cache keys pada API Transaksi. Backend untuk store keys bisa dipilih antara memcached, redis atau memory (default)

  3. orjson https://github.com/ijl/orjson
    Pengganti yang lebih baik daripada standar json

Cara Pakai

Install package dengan pip.

$ pip install snapapi

Import class SNAPAPI kemudian instantiate sama seperti class FastAPI https://fastapi.tiangolo.com/reference/fastapi/?h=class+fastapi#fastapi.FastAPI

app = SNAPAPI(
        title='SNAP-API Demo',
        version="0.1.1",
        description="""
### Standar Nasional Open API Pembayaran Versi 1.0.2
> Flow Inbound (Direct): Bank -> API
""")

Silakan lihat direktori app/demo untuk contoh implementasi. Untuk menjalankan aplikasi Demo, silakan baca app/README.md dan ikuti petunjuknya.

Future Development

Module SNAP-API dibuat berdasarkan kebutuhan project profesional developer untuk implementasi SNAP dengan flow Inbound atau Direct; Bank -> API

Bank yang melakukan initiate query (inquiry dan payment) untuk Virtual Account dimana Bill, Virtual Account dan Customer management dilakukan oleh Backend terlepas dari API ini.

Jadi module ini cukup jika digunakan untuk skenario di atas. Agar compliance dengan SNAP, masih banyak skenario yang harus diimplementasi.

Fokus pengembangan module ini adalah:

  1. Mengikuti perkembangan SNAP supaya compliance setiap kali ada versi terbaru.
  2. Implementasi Model lain agar sesuai dengan dokumentasi SNAP, terutama melengkapi fitur Virtual Account.
  3. Refactoring fitur yang sudah ada supaya lebih ringan, tidak terlalu banyak dependency, dan mudah digunakan.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

snapapi-0.1.7.tar.gz (31.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

snapapi-0.1.7-py3-none-any.whl (26.7 kB view details)

Uploaded Python 3

File details

Details for the file snapapi-0.1.7.tar.gz.

File metadata

  • Download URL: snapapi-0.1.7.tar.gz
  • Upload date:
  • Size: 31.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for snapapi-0.1.7.tar.gz
Algorithm Hash digest
SHA256 28892a9eee00f75626e7ac66836f5de06e087ad75304cee2c09cf3e581da6c10
MD5 4bb77129cd9ba13b3102ab5b90e08fb8
BLAKE2b-256 e575847ce3a2b579f40e499cfb85e447dae7c17af85b7643d9d0ccc7017faa18

See more details on using hashes here.

File details

Details for the file snapapi-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: snapapi-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 26.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for snapapi-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 8429de6c82781bbf16ebfe8083d0e9813a41855d3a4fd4c61d369470b24cc2b4
MD5 a8af77d9fe96ddccf3a9fd23d352e8a0
BLAKE2b-256 09d536345f9bd3f3c1eab7d218738e38caf2e0258dc6d8f442fdfe72f369fa5e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page