Status: this page is undergoing external legal review. Content is subject to change — in particular as the Korean Digital Asset Basic Act (디지털자산기본법) moves through the National Assembly, several of the SFIA-era citations below will be superseded or augmented.
The FXOrder is Musubi’s core on-ledger coordination record. This page enumerates every field on the FXOrder template and each attestation contract that binds to it, with the JP / KR / FATF statute that justifies each field’s presence.
For runtime semantics — when a field populates, what gate enforces it, how the record moves through its lifecycle — see Reporting. For how the audit trail retrieves and retains it, see Audit Trail.
Enums
| Enum | Values |
|---|
Status | PENDING, QUOTED, EXECUTING, SETTLED, FAILED, EXPIRED |
FailureReason | NO_QUOTE, SLIPPAGE, KYC_FAIL, TIMEOUT, REVERT, SANCTIONS, COMPLIANCE_BLOCK |
KYCStatus | KYC_NOT_VERIFIED, KYC_VERIFIED, KYC_EXPIRED, KYC_REJECTED |
SanctionsStatus | SANCTIONS_NOT_SCREENED, SANCTIONS_CLEARED, SANCTIONS_HIT |
RiskRating | LOW, MEDIUM, HIGH, PROHIBITED |
PEPStatus | NOT_PEP, PEP, RCA |
AssetType | STABLECOIN_FIAT_BACKED, CBDC, COMMERCIAL_BANK_MONEY, CRYPTO |
ConsentType | CROSS_BORDER_PII, BENEFICIAL_OWNER_DISCLOSURE |
AlertType | AML_THRESHOLD, SANCTIONS_HIT, KYC_EXPIRED, VELOCITY, TRAVEL_RULE |
Severity | INFO, WARNING, BLOCK |
FilingJurisdiction | JP_JAFIC, KR_KOFIU |
FXOrder
Top-level template. Signatories: operator + sender’s custodian. Observers: sender, receiver, receiver’s custodian, and the market maker (once quote is accepted).
| Field | Type | Optional? | Description | Statute |
|---|
operator | Party | no | Musubi network operator (signatory) | — |
intentId | Text | no | Unique identifier (UUID) for this order | — |
createdAt | Time | no | Proposal creation timestamp | — |
expiresAt | Time | no | Deadline beyond which the order expires | — |
status | Status | no | Current lifecycle state | — |
sender | SenderInfo | no | Sender side, including IVMS 101 originator | APTCP Art. 10-5 / SFIA Art. 5-2(5) |
receiver | ReceiverInfo | no | Receiver side, including IVMS 101 beneficiary | APTCP Art. 10-5 / SFIA Art. 5-2(5) |
sourceAsset | SourceAsset | no | Asset being sold by the sender | — |
targetAsset | TargetAsset | no | Asset the receiver is to be paid in | — |
quoteInfo | QuoteInfo | populated at QUOTED | Winning quote details | — |
marketMakerInfo | MarketMakerInfo | populated at QUOTED | Market maker identity and quoted amounts | — |
settlementInfo | SettlementInfo | populated at SETTLED | Atomic settlement record | — |
compliance | ComplianceInfo | no | KYC, sanctions, risk, jurisdictions, purpose | APTCP Art. 4 / SFIA Art. 5-2 |
failureReason | Optional FailureReason | yes | Set on FAILED or EXPIRED | — |
memo | Optional Text | yes | Free-form remittance information | — |
SenderInfo / ReceiverInfo
Mirror records on either side of the trade. Carry IVMS 101 identity + cross-border PII consent per-transfer.
| Field | Type | Optional? | Description | Statute |
|---|
senderPartyId / receiverPartyId | Party | no | Canton PartyId of the institution | — |
senderCustodianPartyId / receiverCustodianPartyId | Party | no | Canton PartyId of the custodian | — |
intentSignature (sender only) | Text | no | Off-chain signature over the intent payload; verifiable by regulators | — |
originator (sender) / beneficiary (receiver) | Originator / Beneficiary | no | IVMS 101 identity + account number | APTCP Art. 10-5 + Enforcement Regs Art. 32-2 / SFIA Art. 5-2(5) + Enforcement Decree Art. 10-10 |
originatingVASP (sender) / beneficiaryVASP (receiver) | VASPIdentifier | no | IVMS 101 VASP identity | FATF Rec 15 IN ¶7(b) |
crossBorderConsent | ConsentRecord | no | Per-transfer PII cross-border consent | APPI Art. 27 + Art. 28 / PIPA Art. 17 + Art. 28-8 |
Originator / Beneficiary
| Field | Type | Optional? | Description | Statute |
|---|
person | IVMSParty | no | Natural or legal person variant | FATF Rec 16 |
accountNumber | Text | no | Account identifier at the custodian | FATF Rec 16 (mandatory at threshold) |
IVMSParty (variant)
Sum type: PersonNatural NaturalPerson or PersonLegal LegalPerson. Institutional flows typically use PersonLegal.
NaturalPerson
| Field | Type | Optional? | Description |
|---|
primaryName | Text | no | Family name (lastName) |
secondaryName | Text | no | Given name(s) (firstName) |
dateAndPlaceOfBirth | Optional DateAndPlace | yes | Date + place of birth (IVMS 101) |
nationalIdentification | Optional NationalID | yes | Structured national ID |
geographicAddress | GeographicAddress | no | Residence address |
customerIdentification | Optional Text | yes | Internal KYC customer ID at the custodian |
countryOfResidence | Text | no | ISO 3166-1 alpha-2 |
LegalPerson
beneficialOwners is required to be non-empty for HIGH risk orders — enforced by the FXOrder ensure clause (FATF Rec 10 / D-01).
| Field | Type | Optional? | Description | Statute |
|---|
legalName | Text | no | Registered legal name | — |
phoneticName | Optional Text | yes | Romanised / phonetic rendering | — |
bic | Optional Text | yes | SWIFT BIC (8 or 11 chars) | — |
lei | Optional Text | yes | ISO 17442 LEI (20 chars) | — |
geographicAddress | GeographicAddress | no | Registered office address | — |
nationalRegistrationId | Optional Text | yes | National corporate registration ID | — |
countryOfRegistration | Text | no | ISO 3166-1 alpha-2 | — |
beneficialOwners | [NaturalPerson] | defaults [] | Natural persons with ≥25% ownership or effective control | APTCP Art. 4(1)¶4 + Enforcement Regs Art. 11 / SFIA Enforcement Decree Art. 10-5(2) |
GeographicAddress
| Field | Type | Optional? | Description |
|---|
addressType | Text | no | HOME / BIZZ / GEOG |
streetName | Text | no | Street name |
buildingNumber | Text | no | Building or unit number |
postCode | Text | no | Postal code |
townName | Text | no | City / district |
countrySubDivision | Optional Text | yes | Prefecture / province |
country | Text | no | ISO 3166-1 alpha-2 |
NationalID
| Field | Type | Optional? | Description |
|---|
nationalIdentifier | Text | no | ID number |
nationalIdentifierType | Text | no | PASS / DRLC / NIDN / RAID / SOCS / CCPT / LEIX |
countryOfIssue | Text | no | ISO 3166-1 alpha-2 |
DateAndPlace
| Field | Type | Optional? | Description |
|---|
dateOfBirth | Date | no | Calendar date |
placeOfBirth | Text | no | City / region |
countryOfBirth | Text | no | ISO 3166-1 alpha-2 |
VASPIdentifier
| Field | Type | Optional? | Description | Statute |
|---|
legalPerson | LegalPerson | no | VASP’s legal entity details | PSA Art. 63-10 / SFIA Art. 5-2(4) |
vaspCode | Optional Text | yes | GLEIF LEI or locally issued VASP code | FATF Rec 15 IN ¶7(b) |
ConsentRecord
| Field | Type | Optional? | Description | Statute |
|---|
consentType | ConsentType | no | CROSS_BORDER_PII or BENEFICIAL_OWNER_DISCLOSURE | APPI Art. 27 / PIPA Art. 17 |
consentedAt | Time | no | When the data subject consented | APPI Art. 28 / PIPA Art. 28-8 |
consentText | Text | no | Human-readable attestation summary | — |
dataRecipientCountry | Text | no | ISO 3166-1 alpha-2 — where PII will be transmitted | APPI Art. 28 / PIPA Art. 28-8 |
consentScope | Text | no | IVMS101_FULL / IVMS101_SANS_NATIONAL_ID | — |
expiresAt | Time | no | Validity deadline (enforced at settlement) | — |
consentReference | Text | no | Pointer to signed consent document in the custodian’s records system | — |
CurrencyIdentifier
Dual-identifier scheme closing audit finding H-03. iso4217 is the three-letter reference currency used by regulator reporting; tokenSymbol is the on-ledger token symbol.
| Field | Type | Optional? | Description |
|---|
iso4217 | Text | no | ISO 4217 reference currency (3 uppercase alpha) |
tokenSymbol | Text | no | On-ledger token symbol (e.g. JPYSC0, USDCx) |
assetType | AssetType | no | Instrument classification |
issuer | Optional Text | yes | Human-readable issuer label |
SourceAsset / TargetAsset
SourceAsset describes what the sender is selling; TargetAsset describes what the receiver is to be paid. Musubi is receiver-fixed: targetAmount is the primary input; market makers quote sourceAmountMax.
| Field | Type | Optional? | Description |
|---|
sourceCurrencyId / targetCurrencyId | CurrencyIdentifier | no | Dual-identifier currency record (ISO 4217 + token symbol) |
sourceAmountMax (source only) | Optional Decimal | yes | Slippage guard: max the sender will pay |
sourceAmountActual (source only) | Optional Decimal | yes | Actual source amount debited at settlement |
targetAmount (target only) | Decimal | no | Receiver-fixed: exact amount the receiver gets |
QuoteInfo
Populated at QUOTED. Rate-source fields carry non-derivable market evidence at the moment the quote was captured (H-04). The fee amount itself is not stored because it is derivable: feeAmount ≡ mmQuotedSourceAmount − (midMarketRate × targetAmount).
| Field | Type | Optional? | Description | Statute |
|---|
quoteId | Optional Text | yes | Winning quote identifier | — |
quoteSubmittedAt | Optional Time | yes | When the market maker submitted the quote | — |
quoteAcceptedAt | Optional Time | yes | When the sender accepted the quote | — |
quoteValidUntil | Optional Time | yes | Quote expiry (typically ~30 seconds after submission) | — |
fxRate | Optional Decimal | yes | Post-spread rate actually offered | — |
midMarketRate | Optional Decimal | yes | Observed mid-market rate at quote capture | Best-execution evidence (JFSA / FSC guidance) |
rateSource | Optional Text | yes | REUTERS_REFINITIV / BLOOMBERG_BGN / INTERNAL_OBSERVED | Rate-source provenance (H-04) |
rateCapturedAt | Optional Time | yes | Timestamp when the mid-market rate was observed | — |
MarketMakerInfo
Populated at QUOTED.
| Field | Type | Optional? | Description |
|---|
marketMakerPartyId | Optional Party | yes | Winning MM’s Canton PartyId |
mmQuotedSourceAmount | Optional Decimal | yes | Source currency cost quoted by the MM |
SettlementInfo
Populated at SETTLED.
| Field | Type | Optional? | Description |
|---|
transactionHash | Optional Text | yes | Canton DvP transaction hash covering all four legs atomically |
settledAt | Optional Time | yes | Settlement timestamp |
ComplianceInfo
The densest record. KYC + sanctions + jurisdictions + purpose + risk profile per intent.
| Field | Type | Optional? | Description | Statute |
|---|
kycAmlRef | Text | no | Opaque ID referencing the custodian’s external KYC clearance record | APTCP Art. 4 / SFIA Art. 5-2(1) |
kycStatus | KYCStatus | no | Verification status | APTCP Art. 4 / SFIA Art. 5-2(1)¶2 |
kycVerifiedAt | Optional Time | yes | When KYC was verified | APTCP Art. 4 |
kycExpiresAt | Optional Time | yes | KYC expiry — settlement checks this | APTCP Art. 4-2 |
kycProvider | Text | no | Provider name (PERSONA, SUMSUB, INTERNAL, etc.) | — |
sanctionsStatus | SanctionsStatus | no | Screening outcome | FEFTA Art. 16-17 / TFPA Art. 4 |
sanctionsScreenedAt | Optional Time | yes | When screening ran | FEFTA Art. 17 |
sanctionsProvider | Optional Text | yes | Provider (CHAINALYSIS, ELLIPTIC, REFINITIV, etc.) | — |
sanctionsListVersion | Text | no | List version pinned at order creation (S-02) | FEFTA / SFIA audit requirement |
sanctionsFreshnessWindow | RelTime | no | Maximum age of screening at settlement (S-01; default 24h) | FEFTA Art. 17 |
jurisdictionSender | Text | no | ISO 3166-1 alpha-2 — sender side | — |
jurisdictionReceiver | Text | no | ISO 3166-1 alpha-2 — receiver side | — |
purposeCode | Text | no | ISO 20022 external code set (e.g. GDDS, INTC) | ISO 20022 |
sourceOfFunds | Optional Text | yes | Required when riskRating = HIGH | APTCP Art. 4 + Enforcement Regs Art. 12 |
riskRating | RiskRating | default LOW | Customer risk profile; PROHIBITED is rejected by ensure clause | APTCP Art. 4 / SFIA Art. 5-2 + Enforcement Decree Art. 10-5(2); FATF Rec 10 |
pepStatus | PEPStatus | default NOT_PEP | Politically exposed person status | APTCP Art. 4 / FSC Notice 2021-1; FATF Rec 12 |
pepCheckedAt | Optional Time | yes | When PEP screening ran | — |
Attestation contracts
Separate on-ledger contracts bound to an FXOrder’s intentId. ExecuteSettlement validates a subset of these before DvP fires; see Reporting for gate logic.
RegisteredVASP
Operator-maintained VASP whitelist. Signatory: operator.
| Field | Type | Optional? | Description |
|---|
operator | Party | no | Signatory |
vaspCode | Text | no | GLEIF LEI or locally issued VASP code |
legalName | Text | no | VASP’s registered legal name |
jurisdiction | Text | no | ISO 3166-1 alpha-2 |
licenseNumber | Text | no | Regulator-issued license number |
licenseIssuer | Text | no | JFSA, KoFIU, MAS, etc. |
issuedAt | Time | no | License issuance date |
expiresAt | Time | no | License expiry |
revokedAt | Optional Time | yes | Set if the license is revoked mid-term |
Statute: PSA Art. 63-10 + JFSA CAES Guidelines Ch. III; SFIA Art. 5-2(4); FATF Rec 15 IN ¶7(b).
TravelRuleAttestation
Custodian’s on-ledger confirmation that the IVMS 101 payload was transmitted via an approved Travel Rule network. Signatories: operator + originating custodian.
| Field | Type | Optional? | Description |
|---|
operator | Party | no | Co-signatory |
originatingCustodian | Party | no | Custodian that transmitted the payload |
intentId | Text | no | Binds this attestation to a specific FXOrder |
provider | Text | no | CODE, VERIFY_VASP, NOTABENE, TRUST, SYGNA, etc. |
providerMessageId | Text | no | Provider-opaque transmission ID for regulator lookup |
payloadHash | Text | no | SHA-256 of the canonical IVMS 101 JSON transmitted |
originatorVaspCode | Text | no | Must match SenderInfo.originatingVASP.vaspCode |
beneficiaryVaspCode | Text | no | Must match ReceiverInfo.beneficiaryVASP.vaspCode |
transmittedAt | Time | no | Timestamp from provider ACK |
counterpartyAckAt | Optional Time | yes | Optional — recorded if the provider surfaces an ACK |
Statute: APTCP Art. 10-5 + Enforcement Regs Art. 32-2; SFIA Art. 5-2(5) + Enforcement Decree Art. 10-10; FATF Rec 16 IN ¶7(b).
ComplianceClearance
Dual-signed officer attestation. Existence of an unexpired clearance contract is the attestation that alerts are resolved, KYC is verified, and sanctions are cleared — the officer verifies those preconditions off-ledger before co-signing. Signatories: operator + complianceOfficer.
| Field | Type | Optional? | Description |
|---|
operator | Party | no | Co-signatory |
complianceOfficer | Party | no | Distinct party from operator (dual control) |
intentId | Text | no | Binds the clearance to a specific FXOrder |
clearanceAt | Time | no | When clearance was granted |
expiresAt | Time | no | Short TTL (default 1 hour) forces re-attestation |
attestationText | Text | no | Free-text attestation written to audit |
alertSnapshotHashes | [Text] | no | SHA-256 of each witnessed alert |
Statute: APTCP Art. 11 / Art. 11-2 + JFSA AML Guidelines §III-2; SFIA Art. 5(3) + FSC AML Internal Control Notice; FATF Rec 18.
ComplianceAlert
Raised automatically by backend monitoring when thresholds / velocity / sanctions-hit triggers fire. BLOCK-severity alerts must be resolved via an STRFiling before settlement proceeds.
| Field | Type | Optional? | Description |
|---|
operator | Party | no | Signatory |
complianceOfficer | Party | no | Observer; can exercise Resolve |
intentId | Text | no | FXOrder this alert is linked to |
alertType | AlertType | no | Classification |
severity | Severity | no | INFO, WARNING, BLOCK |
threshold | Decimal | no | Configured threshold that tripped |
observed | Decimal | no | Observed value |
currency | Text | no | Currency of threshold / observed |
createdAt | Time | no | Alert creation |
resolvedAt | Optional Time | yes | Set via Resolve |
resolution | Optional Text | yes | Resolver’s notes |
resolvedBy | Optional Party | yes | Who resolved |
strFilingCid | Optional (ContractId STRFiling) | yes | Required for BLOCK resolution (M-01) |
Resolve choice fields (exercised by complianceOfficer): resolver, notes, resolvedAtTime, linkedFilingCid. The choice enforces the 72h raise-to-file SLA when severity is BLOCK.
Statute: APTCP Art. 8 + Enforcement Regs Art. 28; SFIA Art. 4 + Enforcement Decree Art. 8; FATF Rec 20.
STRFiling
On-ledger record that a Suspicious Transaction Report was submitted to JAFIC (JP) or KoFIU (KR). Signatories: operator + complianceOfficer.
| Field | Type | Optional? | Description |
|---|
operator | Party | no | Co-signatory |
complianceOfficer | Party | no | Co-signatory |
intentId | Text | no | FXOrder that triggered the STR |
filingJurisdiction | FilingJurisdiction | no | JP_JAFIC or KR_KOFIU |
filerId | Text | no | Registered compliance officer’s license ID |
filedAt | Time | no | Submission timestamp |
externalReferenceId | Text | no | Regulator-acknowledged submission ID |
payloadHash | Text | no | SHA-256 of the submitted form (JSON or XML) |
slaMet | Bool | no | Raise-to-file ≤ 72h? |
Statute: APTCP Art. 8 (疑わしい取引の届出 → JAFIC); SFIA Art. 4 (의심거래보고 → KoFIU); FATF Rec 20.
- Reporting — lifecycle narrative: when each field populates and what gate checks it.
- Audit Trail — how the audit record accretes, retention, dossier retrieval.
- Compliant Payments — the compliance thesis at a glance.