packager

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 2, 2026 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

Package packager assembles named ISO-8583 profiles — immutable iso8583 Schemas wired from the orthogonal fieldcodec/lengthcodec catalog. A profile is just a *Schema (there is no special packager type), so card-scheme dialects are deltas (Derive/Override) over a base, and the same composition is also expressible as declarative config via the generic loader.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CoralPay added in v0.3.0

func CoralPay() *iso8583.Schema

CoralPay is an ISO 8583:1987 profile for the CoralPay acquirer link, generated field-for-field from the certified jPOS GenericPackager definition (fields2.xml) used by the legacy switch-gateway. It reuses the postField/p* shorthands from postilion.go.

func ISO87A

func ISO87A() *iso8583.Schema

ISO87A returns the ISO 8583:1987 variant A (ASCII) profile.

func ISO87B

func ISO87B() *iso8583.Schema

ISO87B returns the ISO 8583:1987 variant B (binary / BCD) profile.

func ISO87C

func ISO87C() *iso8583.Schema

ISO87C returns the ISO 8583:1987 variant C (EBCDIC) profile.

func ISO93A

func ISO93A() *iso8583.Schema

ISO93A returns the ISO 8583:1993 variant A (ASCII) profile.

func ISO93B

func ISO93B() *iso8583.Schema

ISO93B returns the ISO 8583:1993 variant B (binary / BCD) profile.

func Load

func Load(data []byte, reg *fieldcodec.Registry) (*iso8583.Schema, error)

Load builds a schema from a JSON document, resolving names against reg.

func LoadEmbedded

func LoadEmbedded(name string) (*iso8583.Schema, error)

LoadEmbedded builds a schema from an embedded schemadef/<name> document using the default registry.

func Mastercard

func Mastercard() *iso8583.Schema

Mastercard is a representative Mastercard dialect over ISO 8583:1993 variant A, redefining the additional-data private fields DE 48 and DE 63. It demonstrates a scheme overlay via Derive/Override.

func Postilion added in v0.2.0

func Postilion() *iso8583.Schema

Postilion is an ISO 8583:1987 profile for Postilion-style switch links (the layout used by many African/agency acquirers, e.g. Interswitch). It pins an ASCII MTI, a BINARY primary+secondary bitmap, ASCII fixed and LL/LLL variable fields, and a DE 127 reserved-private subfield group carried under a 6-digit length prefix over a BINARY sub-bitmap. It validated against a live host (sign-on 0810 + cashout 0210). It is a clean-room composition from the public ISO 8583:1987 field semantics, not a port of any vendor packager.

On the wire such links use a 2-byte big-endian length prefix and require a network sign-on (0800) before financial messages — both transport concerns, handled by the caller (see the link package), not the schema.

func Profile

func Profile(id string) (*iso8583.Schema, bool)

Profile builds a built-in profile by id.

func Profiles

func Profiles() map[string]func() *iso8583.Schema

Profiles maps every built-in profile id to its constructor, for discovery and name-based lookup (e.g. the generic loader, an admin API).

func VisaBaseI

func VisaBaseI() *iso8583.Schema

VisaBaseI is Visa Base I expressed as a delta over ISO 8583:1993 variant A: the private fields DE 62/63 carry Visa-specific binary network data. This is a representative overlay demonstrating Derive/Override, not the full Visa dialect.

func Zone

func Zone() *iso8583.Schema

Zone is an ISO 8583:1987 profile for the Zone acquirer link, generated field-for-field from the certified jPOS GenericPackager definition (zone.xml) used by the legacy switch-gateway. It reuses the postField/p* shorthands from postilion.go.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL