# List payment data maps

Returns Payment Data Maps stored for your integration. Omit status to include both active and archived maps, or filter by ACTIVE or ARCHIVED.

Product: Payment API
API reference version: 0.1.0 (current)
OpenAPI contract: https://docs.axiym.io/openapi/payment-api/0.1.0.yaml
Canonical page: https://docs.axiym.io/payment-api/api-reference/0.1.0/payment-data-maps/listPaymentDataMaps

[Compact reference](/payment-api/api-reference/0.1.0/payment-data-maps/listPaymentDataMaps.md)

## GET /payment-data-maps

## Servers

```json
[
  {
    "url": "https://partner-api.sandbox.axiym.io/api/v1",
    "description": "Sandbox"
  },
  {
    "url": "https://partner-api.axiym.io/api/v1",
    "description": "Production"
  }
]
```

## Authentication

```json
{
  "security": [
    {
      "Default": []
    }
  ],
  "securitySchemes": {
    "Default": {
      "type": "http",
      "scheme": "bearer",
      "bearerFormat": "JWT"
    }
  }
}
```

## Parameters

### header: X-Request-Id

```json
{
  "name": "X-Request-Id",
  "in": "header",
  "required": false,
  "description": "Optional request identifier for tracing and support. A UUID is recommended. Axiym echoes it in `X-Request-Id`, or generates one when omitted.",
  "schema": {
    "type": "string",
    "format": "uuid",
    "examples": [
      "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    ]
  }
}
```

### query: first

```json
{
  "name": "first",
  "in": "query",
  "description": "Maximum number of items to return (page size).",
  "schema": {
    "type": "integer",
    "minimum": 1,
    "maximum": 100,
    "default": 20,
    "examples": [
      20
    ]
  }
}
```

### query: after

```json
{
  "name": "after",
  "in": "query",
  "description": "Cursor for the next page, from the previous response's pageInfo.endCursor.",
  "schema": {
    "type": "string",
    "examples": [
      "eyJvZmZzZXQiOjI1fQ=="
    ]
  }
}
```

### query: status

```json
{
  "name": "status",
  "in": "query",
  "required": false,
  "description": "Filter maps by status. Omit to include both active and archived maps.",
  "schema": {
    "$ref": "#/components/schemas/PaymentDataMapStatus"
  }
}
```

## Responses

### 200

```json
{
  "description": "Payment data map page",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PaymentDataMapPage"
      }
    }
  }
}
```

### 400

```json
{
  "description": "Malformed or invalid request.",
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "HTTP status code, duplicated in the body."
          },
          "message": {
            "type": "string",
            "description": "Human-readable message describing the error."
          },
          "errors": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "message": {
                "type": "string"
              }
            },
            "description": "Additional error details; null when there are none."
          }
        },
        "required": [
          "code",
          "message",
          "errors"
        ]
      },
      "examples": {
        "Malformed JSON body": {
          "summary": "Malformed JSON body",
          "value": {
            "code": 400,
            "message": "Bad Request",
            "errors": {
              "message": "Failed to parse the request body as JSON: expected value at line 1 column 5"
            }
          }
        },
        "Generic": {
          "summary": "Generic",
          "value": {
            "code": 400,
            "message": "Invalid cursor",
            "errors": null
          }
        }
      }
    }
  },
  "headers": {
    "X-Request-Id": {
      "description": "Request identifier for tracing and support, echoed from the request or generated by Axiym.",
      "schema": {
        "type": "string",
        "format": "uuid",
        "examples": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ]
      }
    }
  }
}
```

### 401

```json
{
  "description": "Missing, expired, or invalid credentials.",
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "HTTP status code, duplicated in the body."
          },
          "message": {
            "type": "string",
            "description": "Human-readable message describing the error."
          },
          "errors": {
            "type": [
              "object",
              "null"
            ],
            "description": "Additional error details; null when there are none."
          }
        },
        "required": [
          "code",
          "message",
          "errors"
        ]
      },
      "examples": {
        "Example 1": {
          "summary": "Example 1",
          "value": {
            "code": 401,
            "message": "Unauthorized",
            "errors": null
          }
        }
      }
    }
  },
  "headers": {
    "X-Request-Id": {
      "description": "Request identifier for tracing and support, echoed from the request or generated by Axiym.",
      "schema": {
        "type": "string",
        "format": "uuid",
        "examples": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ]
      }
    }
  }
}
```

### 403

```json
{
  "description": "Forbidden",
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "HTTP status code, duplicated in the body."
          },
          "message": {
            "type": "string",
            "description": "Human-readable message describing the error."
          },
          "errors": {
            "type": [
              "object",
              "null"
            ],
            "description": "Additional error details; null when there are none."
          }
        },
        "required": [
          "code",
          "message",
          "errors"
        ]
      },
      "examples": {
        "Example 1": {
          "summary": "Example 1",
          "value": {
            "code": 403,
            "message": "Forbidden",
            "errors": null
          }
        }
      }
    }
  },
  "headers": {
    "X-Request-Id": {
      "description": "Request identifier for tracing and support, echoed from the request or generated by Axiym.",
      "schema": {
        "type": "string",
        "format": "uuid",
        "examples": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ]
      }
    }
  }
}
```

### 422

```json
{
  "description": "The request failed validation or a business rule. Validation failures return `errors` keyed by request field. Business rejections return `errors: null` and explain the reason in `message`.",
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "HTTP status code, duplicated in the body."
          },
          "message": {
            "type": "string",
            "description": "`Invalid Parameters` for validation failures; the rejection reason otherwise."
          },
          "errors": {
            "type": [
              "object",
              "null"
            ],
            "description": "For validation failures, keys follow the request fields and values contain field errors or nested errors. Business rejections return `null`.",
            "additionalProperties": {
              "$ref": "#/components/schemas/ValidationFieldErrors"
            }
          }
        },
        "required": [
          "code",
          "message",
          "errors"
        ]
      },
      "examples": {
        "Flat field errors": {
          "summary": "Flat field errors",
          "value": {
            "code": 422,
            "message": "Invalid Parameters",
            "errors": {
              "amount": [
                {
                  "code": "length",
                  "message": null,
                  "params": {
                    "value": "",
                    "min": 1
                  }
                }
              ],
              "recipient": {
                "destination": {
                  "currency": [
                    {
                      "code": "invalid_currency",
                      "message": null,
                      "params": {
                        "value": "ZZZ"
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "Nested struct errors": {
          "summary": "Nested struct errors",
          "value": {
            "code": 422,
            "message": "Invalid Parameters",
            "errors": {
              "sender": {
                "address": {
                  "country": [
                    {
                      "code": "invalid_country",
                      "message": null,
                      "params": {
                        "value": "INVALID"
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "List item errors": {
          "summary": "List item errors",
          "value": {
            "code": 422,
            "message": "Invalid Parameters",
            "errors": {
              "sender": {
                "relationships": {
                  "0": {
                    "firstName": [
                      {
                        "code": "length",
                        "message": null,
                        "params": {
                          "value": "",
                          "min": 1
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "Business rejection": {
          "summary": "Business rejection",
          "value": {
            "code": 422,
            "message": "Documents Not Accepted",
            "errors": null
          }
        }
      }
    }
  },
  "headers": {
    "X-Request-Id": {
      "description": "Request identifier for tracing and support, echoed from the request or generated by Axiym.",
      "schema": {
        "type": "string",
        "format": "uuid",
        "examples": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ]
      }
    }
  }
}
```

### 500

```json
{
  "description": "Unexpected server error.",
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "HTTP status code, duplicated in the body."
          },
          "message": {
            "type": "string",
            "description": "Human-readable message describing the error."
          },
          "errors": {
            "type": [
              "object",
              "null"
            ],
            "description": "Additional error details; null when there are none."
          }
        },
        "required": [
          "code",
          "message",
          "errors"
        ]
      },
      "examples": {
        "Example 1": {
          "summary": "Example 1",
          "value": {
            "code": 500,
            "message": "Internal Error",
            "errors": null
          }
        }
      }
    }
  },
  "headers": {
    "X-Request-Id": {
      "description": "Request identifier for tracing and support, echoed from the request or generated by Axiym.",
      "schema": {
        "type": "string",
        "format": "uuid",
        "examples": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ]
      }
    }
  }
}
```

## Operation metadata

```json
{
  "tags": [
    "Payment Data Maps"
  ],
  "operationId": "listPaymentDataMaps"
}
```

## Referenced definitions

- [`#/components/parameters/RequestId`](#definition-1)
- [`#/components/parameters/First`](#definition-2)
- [`#/components/parameters/After`](#definition-3)
- [`#/components/schemas/PaymentDataMapStatus`](#definition-4)
- [`#/components/schemas/PaymentDataMapPage`](#definition-5)
- [`#/components/schemas/PaymentDataMap`](#definition-6)
- [`#/components/schemas/PaymentDataMapDefinition`](#definition-7)
- [`#/components/schemas/PaymentMapField`](#definition-8)
- [`#/components/schemas/PaymentMapSourcePath`](#definition-9)
- [`#/components/schemas/PaymentMapFieldTarget`](#definition-10)
- [`#/components/schemas/PaymentMapDocument`](#definition-11)
- [`#/components/schemas/NestedPaymentMapDocument`](#definition-12)
- [`#/components/schemas/PaymentMapDocumentTarget`](#definition-13)
- [`#/components/schemas/PaymentMapDocumentFields`](#definition-14)
- [`#/components/schemas/PaymentMapRelativeField`](#definition-15)
- [`#/components/schemas/PaymentMapDocumentFilter`](#definition-16)
- [`#/components/schemas/PaymentMapDocumentMatch`](#definition-17)
- [`#/components/schemas/LinkedPaymentMapDocument`](#definition-18)
- [`#/components/schemas/PaymentMapValue`](#definition-19)
- [`#/components/schemas/SourceOfFundsPaymentMapValue`](#definition-20)
- [`#/components/schemas/SourceOfFundsValueMap`](#definition-21)
- [`#/components/schemas/SourceOfFunds`](#definition-22)
- [`#/components/schemas/PartyIdentificationTypePaymentMapValue`](#definition-23)
- [`#/components/schemas/PartyIdentificationTypeValueMap`](#definition-24)
- [`#/components/schemas/PartyIdentificationType`](#definition-25)
- [`#/components/schemas/RelationshipRolePaymentMapValue`](#definition-26)
- [`#/components/schemas/RelationshipRoleValueMap`](#definition-27)
- [`#/components/schemas/RelationshipRole`](#definition-28)
- [`#/components/schemas/SupportingDocumentTypePaymentMapValue`](#definition-29)
- [`#/components/schemas/SupportingDocumentTypeValueMap`](#definition-30)
- [`#/components/schemas/SupportingDocumentType`](#definition-31)
- [`#/components/schemas/TransactionPurposePaymentMapValue`](#definition-32)
- [`#/components/schemas/TransactionPurposeValueMap`](#definition-33)
- [`#/components/schemas/TransactionPurpose`](#definition-34)
- [`#/components/schemas/BusinessRelationshipPaymentMapValue`](#definition-35)
- [`#/components/schemas/BusinessRelationshipValueMap`](#definition-36)
- [`#/components/schemas/BusinessRelationship`](#definition-37)
- [`#/components/schemas/PaymentMapAmountResolution`](#definition-38)
- [`#/components/schemas/CurrencyPaymentMapAmount`](#definition-39)
- [`#/components/schemas/FixedPaymentMapAmount`](#definition-40)
- [`#/components/schemas/PageInfo`](#definition-41)
- [`#/components/responses/BadRequest`](#definition-42)
- [`#/components/responses/Unauthorized`](#definition-43)
- [`#/components/responses/Forbidden`](#definition-44)
- [`#/components/responses/InvalidParams`](#definition-45)
- [`#/components/schemas/ValidationFieldErrors`](#definition-46)
- [`#/components/schemas/ValidationError`](#definition-47)
- [`#/components/responses/InternalError`](#definition-48)

### definition-1

`#/components/parameters/RequestId`

```json
{
  "name": "X-Request-Id",
  "in": "header",
  "required": false,
  "description": "Optional request identifier for tracing and support. A UUID is recommended. Axiym echoes it in `X-Request-Id`, or generates one when omitted.",
  "schema": {
    "type": "string",
    "format": "uuid",
    "examples": [
      "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    ]
  }
}
```

### definition-2

`#/components/parameters/First`

```json
{
  "name": "first",
  "in": "query",
  "description": "Maximum number of items to return (page size).",
  "schema": {
    "type": "integer",
    "minimum": 1,
    "maximum": 100,
    "default": 20,
    "examples": [
      20
    ]
  }
}
```

### definition-3

`#/components/parameters/After`

```json
{
  "name": "after",
  "in": "query",
  "description": "Cursor for the next page, from the previous response's pageInfo.endCursor.",
  "schema": {
    "type": "string",
    "examples": [
      "eyJvZmZzZXQiOjI1fQ=="
    ]
  }
}
```

### definition-4

`#/components/schemas/PaymentDataMapStatus`

```json
{
  "type": "string",
  "description": "ACTIVE maps can be used to create payouts. ARCHIVED maps are retained for audit and cannot be used for new payouts.",
  "enum": [
    "ACTIVE",
    "ARCHIVED"
  ]
}
```

### definition-5

`#/components/schemas/PaymentDataMapPage`

```json
{
  "type": "object",
  "description": "Paginated list of stored Payment Data Maps.",
  "additionalProperties": false,
  "required": [
    "nodes",
    "pageInfo"
  ],
  "properties": {
    "nodes": {
      "type": "array",
      "description": "Payment Data Maps in this page.",
      "items": {
        "$ref": "#/components/schemas/PaymentDataMap"
      }
    },
    "pageInfo": {
      "$ref": "#/components/schemas/PageInfo"
    }
  }
}
```

### definition-6

`#/components/schemas/PaymentDataMap`

```json
{
  "type": "object",
  "description": "Payment Data Map stored for your integration. Its definition and content hash remain unchanged when it is archived.",
  "additionalProperties": false,
  "required": [
    "paymentDataMapId",
    "name",
    "definition",
    "status",
    "contentHash",
    "createdAt"
  ],
  "properties": {
    "paymentDataMapId": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "definition": {
      "$ref": "#/components/schemas/PaymentDataMapDefinition"
    },
    "status": {
      "$ref": "#/components/schemas/PaymentDataMapStatus"
    },
    "contentHash": {
      "type": "string",
      "pattern": "^sha256:[a-f0-9]{64}$",
      "description": "SHA-256 digest of Axiym's canonical serialization of the map definition.",
      "examples": [
        "sha256:8a4b22d6421e6349c74b6814880d19c9c96a73427bb42d088d057f15c17b37e7"
      ]
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}
```

### definition-7

`#/components/schemas/PaymentDataMapDefinition`

```json
{
  "type": "object",
  "description": "Reusable rules that transform your complete payment JSON into the Axiym payout input. Field paths are relative to the payment object sent to POST /payouts/mapped. The definition stores rules and reviewed labels, not payment records or file content. Definitions are immutable; store changed rules as a new map. Unsupported schema versions are rejected.",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "fields",
    "documents",
    "values",
    "sender",
    "amountResolution"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "enum": [
        "3"
      ],
      "examples": [
        "3"
      ],
      "description": "Map document format version. Version 3 describes full-payment field mappings, document connections, value translations, sender handling, and amount resolution."
    },
    "fields": {
      "type": "array",
      "minItems": 1,
      "items": {
        "$ref": "#/components/schemas/PaymentMapField"
      },
      "description": "Mappings for all payment and party fields you supply. Include sourceAccountId, amount.amount, amount.currency, and the recipient fields required by the payout input. Configure document content separately in documents. Missing optional source paths are omitted; missing required output data rejects the payout."
    },
    "documents": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PaymentMapDocument"
      },
      "description": "Connections for the documents your integration supplies. Use [] if no documents are supplied; corridor requirements still apply. A source collection may serve different destinations through distinct ownership rules."
    },
    "values": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PaymentMapValue"
      },
      "description": "Reviewed dictionaries for controlled fields that use your labels. Use [] if all controlled fields already use exact Axiym codes. Fields without a value rule must use Axiym codes. Names, references, amounts, and other free-text fields do not need dictionaries."
    },
    "sender": {
      "type": "string",
      "enum": [
        "supplied",
        "onboarded-profile"
      ],
      "description": "supplied requires sender data through the saved field mappings on every payout. onboarded-profile uses the account holder profile and omits sender from the mapped input; sender field, document, and value rules are skipped. Use separate maps when your integration needs both behaviours."
    },
    "amountResolution": {
      "$ref": "#/components/schemas/PaymentMapAmountResolution"
    }
  },
  "examples": [
    {
      "schemaVersion": "3",
      "fields": [
        {
          "source": "instruction.account",
          "target": "sourceAccountId"
        },
        {
          "source": "instruction.total",
          "target": "amount.amount"
        },
        {
          "source": "instruction.currency",
          "target": "amount.currency"
        },
        {
          "source": "instruction.reason",
          "target": "purpose"
        },
        {
          "source": "instruction.funding",
          "target": "sourceOfFunds"
        },
        {
          "source": "instruction.reference",
          "target": "reference"
        },
        {
          "source": "beneficiary.name",
          "target": "recipient.name"
        },
        {
          "source": "beneficiary.relationship",
          "target": "recipient.businessRelationship"
        },
        {
          "source": "beneficiary.address.line",
          "target": "recipient.address.streetName"
        },
        {
          "source": "beneficiary.address.city",
          "target": "recipient.address.city"
        },
        {
          "source": "beneficiary.address.country",
          "target": "recipient.address.country"
        },
        {
          "source": "beneficiary.account.number",
          "target": "recipient.destination.accountNumber"
        },
        {
          "source": "beneficiary.account.currency",
          "target": "recipient.destination.currency"
        },
        {
          "source": "beneficiary.account.bank.name",
          "target": "recipient.destination.bank.bankName"
        },
        {
          "source": "beneficiary.account.bank.swift",
          "target": "recipient.destination.bank.swiftBic"
        },
        {
          "source": "beneficiary.account.bank.country",
          "target": "recipient.destination.bank.address.country"
        }
      ],
      "documents": [
        {
          "target": "supportingDocuments[]",
          "source": "files[]",
          "association": "linked",
          "fields": {
            "documentType": "kind",
            "name": "fileName",
            "data": "content"
          },
          "matches": [
            {
              "fileField": "ownerId",
              "recordPath": "instruction.reference"
            }
          ],
          "filters": [
            {
              "field": "usage",
              "value": "payment"
            }
          ]
        }
      ],
      "values": [
        {
          "source": "instruction.reason",
          "targets": [
            "purpose"
          ],
          "translations": {
            "supplier invoice": "GOODS_PURCHASE"
          }
        },
        {
          "source": "instruction.funding",
          "targets": [
            "sourceOfFunds"
          ],
          "translations": {
            "business income": "BUSINESS_INCOME"
          }
        },
        {
          "source": "beneficiary.relationship",
          "targets": [
            "recipient.businessRelationship"
          ],
          "translations": {
            "supplier": "SUPPLIER"
          }
        },
        {
          "source": "files[].kind",
          "targets": [
            "supportingDocuments[].documentType"
          ],
          "translations": {
            "invoice": "INVOICE"
          }
        }
      ],
      "sender": "onboarded-profile",
      "amountResolution": {
        "method": "currency",
        "fundingAccount": "sourceAccountId",
        "recipientCurrency": "recipient.destination.currency",
        "whenBothMatch": "sourceAmount",
        "whenNeitherMatches": "reject"
      }
    }
  ]
}
```

### definition-8

`#/components/schemas/PaymentMapField`

```json
{
  "type": "object",
  "description": "Copies one source field to an Axiym field without type coercion. Include every field you intend to send, even if its name already matches Axiym. Unmapped input fields are ignored. Source and target paths must be unique across field rules. Array depth and order must match; fields belonging to the same target array must use the same source array.",
  "additionalProperties": false,
  "required": [
    "source",
    "target"
  ],
  "properties": {
    "source": {
      "$ref": "#/components/schemas/PaymentMapSourcePath"
    },
    "target": {
      "$ref": "#/components/schemas/PaymentMapFieldTarget"
    }
  }
}
```

### definition-9

`#/components/schemas/PaymentMapSourcePath`

```json
{
  "type": "string",
  "pattern": "^(?!(?:__proto__|prototype|constructor)(?:\\[\\])?(?:\\.|$))[A-Za-z0-9_]+(?:\\[\\])?(?:\\.(?!(?:__proto__|prototype|constructor)(?:\\[\\])?(?:\\.|$))[A-Za-z0-9_]+(?:\\[\\])?)*$",
  "description": "Field path relative to the payment object in a mapped payout request. Use dots for nesting and [] for each array level, for example client.people[].fullName. The payment request wrapper is not part of the path. Keys contain letters, digits, or underscores; prototype-related keys are not allowed."
}
```

### definition-10

`#/components/schemas/PaymentMapFieldTarget`

```json
{
  "type": "string",
  "enum": [
    "sourceAccountId",
    "sender.name",
    "sender.countryOfIncorporation",
    "sender.address.streetName",
    "sender.address.buildingNumber",
    "sender.address.city",
    "sender.address.region",
    "sender.address.postalCode",
    "sender.address.country",
    "sender.contact.email",
    "sender.contact.phoneNumber",
    "sender.identification.type",
    "sender.identification.number",
    "sender.identification.country",
    "sender.identification.issueDate",
    "sender.identification.expiryDate",
    "sender.relationships[].role",
    "sender.relationships[].firstName",
    "sender.relationships[].lastName",
    "sender.relationships[].nationalities[]",
    "sender.relationships[].address.streetName",
    "sender.relationships[].address.buildingNumber",
    "sender.relationships[].address.city",
    "sender.relationships[].address.region",
    "sender.relationships[].address.postalCode",
    "sender.relationships[].address.country",
    "sender.relationships[].identification.type",
    "sender.relationships[].identification.number",
    "sender.relationships[].identification.country",
    "sender.relationships[].identification.issueDate",
    "sender.relationships[].identification.expiryDate",
    "recipient.businessRelationship",
    "recipient.name",
    "recipient.countryOfIncorporation",
    "recipient.address.streetName",
    "recipient.address.buildingNumber",
    "recipient.address.city",
    "recipient.address.region",
    "recipient.address.postalCode",
    "recipient.address.country",
    "recipient.contact.email",
    "recipient.contact.phoneNumber",
    "recipient.identification.type",
    "recipient.identification.number",
    "recipient.identification.country",
    "recipient.identification.issueDate",
    "recipient.identification.expiryDate",
    "recipient.relationships[].role",
    "recipient.relationships[].firstName",
    "recipient.relationships[].lastName",
    "recipient.relationships[].nationalities[]",
    "recipient.relationships[].address.streetName",
    "recipient.relationships[].address.buildingNumber",
    "recipient.relationships[].address.city",
    "recipient.relationships[].address.region",
    "recipient.relationships[].address.postalCode",
    "recipient.relationships[].address.country",
    "recipient.relationships[].identification.type",
    "recipient.relationships[].identification.number",
    "recipient.relationships[].identification.country",
    "recipient.relationships[].identification.issueDate",
    "recipient.relationships[].identification.expiryDate",
    "recipient.destination.accountNumber",
    "recipient.destination.currency",
    "recipient.destination.bank.bankName",
    "recipient.destination.bank.address.streetName",
    "recipient.destination.bank.address.buildingNumber",
    "recipient.destination.bank.address.city",
    "recipient.destination.bank.address.region",
    "recipient.destination.bank.address.postalCode",
    "recipient.destination.bank.address.country",
    "recipient.destination.bank.swiftBic",
    "recipient.destination.bank.clearingCode",
    "recipient.destination.bank.clearingSystemCode",
    "externalReference",
    "sourceOfFunds",
    "purpose",
    "reference",
    "amount.amount",
    "amount.currency"
  ],
  "description": "Leaf in the Axiym payout input. amount.amount and amount.currency are intermediate fields resolved to sourceAmount or destinationAmount by amountResolution. Document fields are configured through documents."
}
```

### definition-11

`#/components/schemas/PaymentMapDocument`

```json
{
  "description": "Saved connection from one file collection to its Axiym destination. Ownership is determined by nesting or explicit ID matches. The same rules apply to every file on each payout.",
  "oneOf": [
    {
      "$ref": "#/components/schemas/NestedPaymentMapDocument"
    },
    {
      "$ref": "#/components/schemas/LinkedPaymentMapDocument"
    }
  ],
  "discriminator": {
    "propertyName": "association",
    "mapping": {
      "nested": "#/components/schemas/NestedPaymentMapDocument",
      "linked": "#/components/schemas/LinkedPaymentMapDocument"
    }
  }
}
```

### definition-12

`#/components/schemas/NestedPaymentMapDocument`

```json
{
  "title": "Nested document connection",
  "type": "object",
  "description": "Files are already nested with the payment, party, person, or identification they support. Ownership follows the source structure and established field mappings. No ID matches are needed. Separate owners or identifications cannot be inferred from file names or types.",
  "additionalProperties": false,
  "required": [
    "target",
    "source",
    "fields",
    "filters",
    "association",
    "matches"
  ],
  "properties": {
    "target": {
      "$ref": "#/components/schemas/PaymentMapDocumentTarget"
    },
    "source": {
      "type": "string",
      "allOf": [
        {
          "$ref": "#/components/schemas/PaymentMapSourcePath"
        }
      ],
      "pattern": "\\[\\]$",
      "description": "Source file collection, relative to payment. The path ends in []. For nested connections, the source follows the same owner arrays as the field mappings. Linked connections use one source array at a fixed path, such as files[] or records.files[]."
    },
    "fields": {
      "$ref": "#/components/schemas/PaymentMapDocumentFields"
    },
    "filters": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PaymentMapDocumentFilter"
      },
      "description": "Exact conditions selecting files for this connection. Use [] when no filtering is needed."
    },
    "association": {
      "type": "string",
      "enum": [
        "nested"
      ]
    },
    "matches": {
      "type": "array",
      "maxItems": 0,
      "items": {
        "$ref": "#/components/schemas/PaymentMapDocumentMatch"
      },
      "description": "Empty for nested files."
    }
  }
}
```

### definition-13

`#/components/schemas/PaymentMapDocumentTarget`

```json
{
  "type": "string",
  "enum": [
    "sender.identification.documents[]",
    "sender.relationships[].identification.documents[]",
    "sender.documents[]",
    "recipient.identification.documents[]",
    "recipient.relationships[].identification.documents[]",
    "recipient.documents[]",
    "supportingDocuments[]"
  ],
  "description": "Axiym document collection that receives the files. Requirements for that collection and its owner follow the payout input schema and selected corridor."
}
```

### definition-14

`#/components/schemas/PaymentMapDocumentFields`

```json
{
  "type": "object",
  "description": "Fields within each source file containing its classification, filename, and complete base64 content. URLs and file identifiers do not replace content. A non-canonical document classification requires a value rule for this destination.",
  "additionalProperties": false,
  "required": [
    "documentType",
    "name",
    "data"
  ],
  "properties": {
    "documentType": {
      "$ref": "#/components/schemas/PaymentMapRelativeField"
    },
    "name": {
      "$ref": "#/components/schemas/PaymentMapRelativeField"
    },
    "data": {
      "$ref": "#/components/schemas/PaymentMapRelativeField"
    }
  }
}
```

### definition-15

`#/components/schemas/PaymentMapRelativeField`

```json
{
  "type": "string",
  "pattern": "^(?!(?:__proto__|prototype|constructor)(?:\\.|$))[A-Za-z0-9_]+(?:\\.(?!(?:__proto__|prototype|constructor)(?:\\.|$))[A-Za-z0-9_]+)*$",
  "description": "Field path within one file record. Dots represent nested objects. Array traversal is not supported within a file field."
}
```

### definition-16

`#/components/schemas/PaymentMapDocumentFilter`

```json
{
  "type": "object",
  "description": "Includes a file only when this field equals the saved string, including case and whitespace. All filters must match. Use stable tags to distinguish uses, such as party evidence and payment evidence.",
  "additionalProperties": false,
  "required": [
    "field",
    "value"
  ],
  "properties": {
    "field": {
      "$ref": "#/components/schemas/PaymentMapRelativeField"
    },
    "value": {
      "type": "string"
    }
  }
}
```

### definition-17

`#/components/schemas/PaymentMapDocumentMatch`

```json
{
  "type": "object",
  "description": "An exact ID equality linking a file to its destination record. All matches must hold. IDs must be non-empty strings or finite numbers; strings and numbers are not coerced. For identification evidence, include a match to the identification as well as the owner. Record paths within an array must follow the owner array established by the field rules.",
  "additionalProperties": false,
  "required": [
    "fileField",
    "recordPath"
  ],
  "properties": {
    "fileField": {
      "$ref": "#/components/schemas/PaymentMapRelativeField"
    },
    "recordPath": {
      "$ref": "#/components/schemas/PaymentMapSourcePath"
    }
  }
}
```

### definition-18

`#/components/schemas/LinkedPaymentMapDocument`

```json
{
  "title": "Linked document connection",
  "type": "object",
  "description": "Files are supplied in a separate collection. Match their IDs to the relevant records and optionally filter by usage tags. Each file in a configured source collection must resolve to exactly one destination across all connections; unmatched or ambiguous files cause payout creation to fail. Files retain source order within their destination collection.",
  "additionalProperties": false,
  "required": [
    "target",
    "source",
    "fields",
    "filters",
    "association",
    "matches"
  ],
  "properties": {
    "target": {
      "$ref": "#/components/schemas/PaymentMapDocumentTarget"
    },
    "source": {
      "type": "string",
      "allOf": [
        {
          "$ref": "#/components/schemas/PaymentMapSourcePath"
        }
      ],
      "pattern": "^(?:[A-Za-z0-9_]+\\.)*[A-Za-z0-9_]+\\[\\]$",
      "description": "Source file collection, relative to payment. The path ends in []. For nested connections, the source follows the same owner arrays as the field mappings. Linked connections use one source array at a fixed path, such as files[] or records.files[]."
    },
    "fields": {
      "$ref": "#/components/schemas/PaymentMapDocumentFields"
    },
    "filters": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PaymentMapDocumentFilter"
      },
      "description": "Exact conditions selecting files for this connection. Use [] when no filtering is needed."
    },
    "association": {
      "type": "string",
      "enum": [
        "linked"
      ]
    },
    "matches": {
      "type": "array",
      "minItems": 1,
      "items": {
        "$ref": "#/components/schemas/PaymentMapDocumentMatch"
      }
    }
  }
}
```

### definition-19

`#/components/schemas/PaymentMapValue`

```json
{
  "description": "A dictionary of exact labels for one controlled destination. Rules are unique by source and target. Translations apply after field and document mapping, independently to each array entry. Exact Axiym codes pass unchanged and cannot be redefined. Unknown labels, including differences in case or whitespace, are rejected. Missing optional data is omitted; there are no default values.",
  "oneOf": [
    {
      "$ref": "#/components/schemas/SourceOfFundsPaymentMapValue"
    },
    {
      "$ref": "#/components/schemas/PartyIdentificationTypePaymentMapValue"
    },
    {
      "$ref": "#/components/schemas/RelationshipRolePaymentMapValue"
    },
    {
      "$ref": "#/components/schemas/SupportingDocumentTypePaymentMapValue"
    },
    {
      "$ref": "#/components/schemas/TransactionPurposePaymentMapValue"
    },
    {
      "$ref": "#/components/schemas/BusinessRelationshipPaymentMapValue"
    }
  ]
}
```

### definition-20

`#/components/schemas/SourceOfFundsPaymentMapValue`

```json
{
  "title": "SourceOfFunds translations",
  "type": "object",
  "description": "Reviewed exact translations for a SourceOfFunds field. The source and target must correspond to an existing field rule or document-type connection. A shared source, such as files[].kind, can have different translations for different document destinations.",
  "additionalProperties": false,
  "required": [
    "source",
    "targets",
    "translations"
  ],
  "properties": {
    "source": {
      "$ref": "#/components/schemas/PaymentMapSourcePath"
    },
    "targets": {
      "type": "array",
      "minItems": 1,
      "maxItems": 1,
      "items": {
        "type": "string",
        "enum": [
          "sourceOfFunds"
        ]
      },
      "description": "The Axiym controlled field for these translations. Each rule contains one target; use separate rules for other destinations."
    },
    "translations": {
      "$ref": "#/components/schemas/SourceOfFundsValueMap"
    }
  }
}
```

### definition-21

`#/components/schemas/SourceOfFundsValueMap`

```json
{
  "type": "object",
  "minProperties": 1,
  "propertyNames": {
    "type": "string",
    "minLength": 1,
    "pattern": "\\S"
  },
  "description": "Exact partner labels mapped to SourceOfFunds codes. Case and whitespace are significant. Many labels may map to the same code; only values used by your integration need entries. Existing Axiym codes pass unchanged and cannot be mapped to a different code.",
  "additionalProperties": {
    "$ref": "#/components/schemas/SourceOfFunds"
  }
}
```

### definition-22

`#/components/schemas/SourceOfFunds`

```json
{
  "type": "string",
  "description": "Origin of the sender's funds used for this payment. Use BUSINESS_INCOME for general business income not covered by a more specific category. INVESTMENT_INCOME covers investment returns such as interest and dividends; proceeds from selling investments use SALE_OF_OTHER_ASSETS. CAPITAL_CONTRIBUTION covers equity funding; shareholder and intercompany loans use LOAN_PROCEEDS.",
  "enum": [
    "BUSINESS_INCOME",
    "SALE_OF_GOODS",
    "SALE_OF_SERVICES",
    "COMMISSION",
    "RENTAL_INCOME",
    "INVESTMENT_INCOME",
    "LOAN_PROCEEDS",
    "CAPITAL_CONTRIBUTION",
    "SALE_OF_REAL_ESTATE",
    "SALE_OF_OTHER_ASSETS",
    "GRANT",
    "DONATION",
    "INSURANCE_PAYOUT"
  ],
  "examples": [
    "BUSINESS_INCOME"
  ]
}
```

### definition-23

`#/components/schemas/PartyIdentificationTypePaymentMapValue`

```json
{
  "title": "PartyIdentificationType translations",
  "type": "object",
  "description": "Reviewed exact translations for a PartyIdentificationType field. The source and target must correspond to an existing field rule or document-type connection. A shared source, such as files[].kind, can have different translations for different document destinations.",
  "additionalProperties": false,
  "required": [
    "source",
    "targets",
    "translations"
  ],
  "properties": {
    "source": {
      "$ref": "#/components/schemas/PaymentMapSourcePath"
    },
    "targets": {
      "type": "array",
      "minItems": 1,
      "maxItems": 1,
      "items": {
        "type": "string",
        "enum": [
          "sender.identification.type",
          "sender.relationships[].identification.type",
          "recipient.identification.type",
          "recipient.relationships[].identification.type"
        ]
      },
      "description": "The Axiym controlled field for these translations. Each rule contains one target; use separate rules for other destinations."
    },
    "translations": {
      "$ref": "#/components/schemas/PartyIdentificationTypeValueMap"
    }
  }
}
```

### definition-24

`#/components/schemas/PartyIdentificationTypeValueMap`

```json
{
  "type": "object",
  "minProperties": 1,
  "propertyNames": {
    "type": "string",
    "minLength": 1,
    "pattern": "\\S"
  },
  "description": "Exact partner labels mapped to PartyIdentificationType codes. Case and whitespace are significant. Many labels may map to the same code; only values used by your integration need entries. Existing Axiym codes pass unchanged and cannot be mapped to a different code.",
  "additionalProperties": {
    "$ref": "#/components/schemas/PartyIdentificationType"
  }
}
```

### definition-25

`#/components/schemas/PartyIdentificationType`

```json
{
  "type": "string",
  "description": "Identification document or identifier type. The corridor determines which types are accepted.",
  "enum": [
    "REGISTRATION_NUMBER",
    "TAX_ID",
    "VAT_NUMBER",
    "NATIONAL_ID",
    "PASSPORT",
    "DRIVER_LICENSE",
    "RESIDENCE_PERMIT",
    "LEI",
    "OTHER"
  ],
  "examples": [
    "REGISTRATION_NUMBER"
  ]
}
```

### definition-26

`#/components/schemas/RelationshipRolePaymentMapValue`

```json
{
  "title": "RelationshipRole translations",
  "type": "object",
  "description": "Reviewed exact translations for a RelationshipRole field. The source and target must correspond to an existing field rule or document-type connection. A shared source, such as files[].kind, can have different translations for different document destinations.",
  "additionalProperties": false,
  "required": [
    "source",
    "targets",
    "translations"
  ],
  "properties": {
    "source": {
      "$ref": "#/components/schemas/PaymentMapSourcePath"
    },
    "targets": {
      "type": "array",
      "minItems": 1,
      "maxItems": 1,
      "items": {
        "type": "string",
        "enum": [
          "sender.relationships[].role",
          "recipient.relationships[].role"
        ]
      },
      "description": "The Axiym controlled field for these translations. Each rule contains one target; use separate rules for other destinations."
    },
    "translations": {
      "$ref": "#/components/schemas/RelationshipRoleValueMap"
    }
  }
}
```

### definition-27

`#/components/schemas/RelationshipRoleValueMap`

```json
{
  "type": "object",
  "minProperties": 1,
  "propertyNames": {
    "type": "string",
    "minLength": 1,
    "pattern": "\\S"
  },
  "description": "Exact partner labels mapped to RelationshipRole codes. Case and whitespace are significant. Many labels may map to the same code; only values used by your integration need entries. Existing Axiym codes pass unchanged and cannot be mapped to a different code.",
  "additionalProperties": {
    "$ref": "#/components/schemas/RelationshipRole"
  }
}
```

### definition-28

`#/components/schemas/RelationshipRole`

```json
{
  "type": "string",
  "description": "Canonical role of an individual in relation to the party.",
  "enum": [
    "UBO",
    "DIRECTOR",
    "OFFICER",
    "SHAREHOLDER",
    "AUTHORIZED_SIGNATORY",
    "EMPLOYEE_OF",
    "OTHER_RELATIONSHIP"
  ],
  "examples": [
    "UBO"
  ]
}
```

### definition-29

`#/components/schemas/SupportingDocumentTypePaymentMapValue`

```json
{
  "title": "SupportingDocumentType translations",
  "type": "object",
  "description": "Reviewed exact translations for a SupportingDocumentType field. The source and target must correspond to an existing field rule or document-type connection. A shared source, such as files[].kind, can have different translations for different document destinations.",
  "additionalProperties": false,
  "required": [
    "source",
    "targets",
    "translations"
  ],
  "properties": {
    "source": {
      "$ref": "#/components/schemas/PaymentMapSourcePath"
    },
    "targets": {
      "type": "array",
      "minItems": 1,
      "maxItems": 1,
      "items": {
        "type": "string",
        "enum": [
          "supportingDocuments[].documentType",
          "sender.documents[].documentType",
          "recipient.documents[].documentType",
          "sender.identification.documents[].documentType",
          "recipient.identification.documents[].documentType",
          "sender.relationships[].identification.documents[].documentType",
          "recipient.relationships[].identification.documents[].documentType"
        ]
      },
      "description": "The Axiym controlled field for these translations. Each rule contains one target; use separate rules for other destinations."
    },
    "translations": {
      "$ref": "#/components/schemas/SupportingDocumentTypeValueMap"
    }
  }
}
```

### definition-30

`#/components/schemas/SupportingDocumentTypeValueMap`

```json
{
  "type": "object",
  "minProperties": 1,
  "propertyNames": {
    "type": "string",
    "minLength": 1,
    "pattern": "\\S"
  },
  "description": "Exact partner labels mapped to SupportingDocumentType codes. Case and whitespace are significant. Many labels may map to the same code; only values used by your integration need entries. Existing Axiym codes pass unchanged and cannot be mapped to a different code.",
  "additionalProperties": {
    "$ref": "#/components/schemas/SupportingDocumentType"
  }
}
```

### definition-31

`#/components/schemas/SupportingDocumentType`

```json
{
  "type": "string",
  "description": "Axiym classification of evidence supplied with a payout.",
  "enum": [
    "PASSPORT",
    "NATIONAL_ID",
    "DRIVER_LICENSE",
    "RESIDENCE_PERMIT",
    "PROOF_OF_ADDRESS",
    "UTILITY_BILL",
    "BANK_STATEMENT",
    "TAX_CERTIFICATE",
    "CERTIFICATE_OF_INCORPORATION",
    "REGISTRY_EXTRACT",
    "ARTICLES_OF_ASSOCIATION",
    "SHAREHOLDER_REGISTER",
    "DIRECTOR_REGISTER",
    "UBO_DECLARATION",
    "POWER_OF_ATTORNEY",
    "BOARD_RESOLUTION",
    "REGULATORY_LICENSE",
    "BUSINESS_LICENSE",
    "FINANCIAL_STATEMENT",
    "AUDIT_REPORT",
    "SOURCE_OF_FUNDS",
    "INVOICE",
    "CONTRACT",
    "PURCHASE_ORDER",
    "PAYROLL_FILE",
    "LOAN_AGREEMENT",
    "SHIPPING_DOCUMENT",
    "CUSTOMS_DECLARATION",
    "OTHER"
  ],
  "examples": [
    "INVOICE"
  ]
}
```

### definition-32

`#/components/schemas/TransactionPurposePaymentMapValue`

```json
{
  "title": "TransactionPurpose translations",
  "type": "object",
  "description": "Reviewed exact translations for a TransactionPurpose field. The source and target must correspond to an existing field rule or document-type connection. A shared source, such as files[].kind, can have different translations for different document destinations.",
  "additionalProperties": false,
  "required": [
    "source",
    "targets",
    "translations"
  ],
  "properties": {
    "source": {
      "$ref": "#/components/schemas/PaymentMapSourcePath"
    },
    "targets": {
      "type": "array",
      "minItems": 1,
      "maxItems": 1,
      "items": {
        "type": "string",
        "enum": [
          "purpose"
        ]
      },
      "description": "The Axiym controlled field for these translations. Each rule contains one target; use separate rules for other destinations."
    },
    "translations": {
      "$ref": "#/components/schemas/TransactionPurposeValueMap"
    }
  }
}
```

### definition-33

`#/components/schemas/TransactionPurposeValueMap`

```json
{
  "type": "object",
  "minProperties": 1,
  "propertyNames": {
    "type": "string",
    "minLength": 1,
    "pattern": "\\S"
  },
  "description": "Exact partner labels mapped to TransactionPurpose codes. Case and whitespace are significant. Many labels may map to the same code; only values used by your integration need entries. Existing Axiym codes pass unchanged and cannot be mapped to a different code.",
  "additionalProperties": {
    "$ref": "#/components/schemas/TransactionPurpose"
  }
}
```

### definition-34

`#/components/schemas/TransactionPurpose`

```json
{
  "type": "string",
  "description": "Reason for the payment. Each code corresponds to one ISO 20022 purpose code (ExternalPurpose1Code). SERVICES_PAYMENT covers every kind of service, including contractor, IT, legal and financial services. OWN_ACCOUNT_TRANSFER is between accounts of the same legal entity; INTERCOMPANY_TRANSFER is between separate companies in a group; TREASURY_MANAGEMENT is a group treasury operation. LOAN_REPAYMENT covers principal; INTEREST_PAYMENT covers interest. INVESTMENT is a financial investment; a property purchase uses REAL_ESTATE_PURCHASE. OTHER covers purposes outside the listed codes. Accepted purposes depend on the selected corridor.",
  "enum": [
    "GOODS_PURCHASE",
    "SERVICES_PAYMENT",
    "SUPPLIER_PAYMENT",
    "SALARY_PAYROLL",
    "RENT_LEASE",
    "LOAN_DISBURSEMENT",
    "LOAN_REPAYMENT",
    "INTEREST_PAYMENT",
    "INTERCOMPANY_TRANSFER",
    "OWN_ACCOUNT_TRANSFER",
    "TREASURY_MANAGEMENT",
    "TAX_PAYMENT",
    "INVESTMENT",
    "REAL_ESTATE_PURCHASE",
    "INSURANCE_PAYMENT",
    "BUSINESS_EXPENSES",
    "EDUCATION_TRAINING_FEES",
    "SUBSCRIPTION_MEMBERSHIP_FEES",
    "ROYALTY_LICENSE_FEES",
    "CHARITABLE_DONATION",
    "REFUND",
    "OTHER"
  ],
  "examples": [
    "GOODS_PURCHASE"
  ]
}
```

### definition-35

`#/components/schemas/BusinessRelationshipPaymentMapValue`

```json
{
  "title": "BusinessRelationship translations",
  "type": "object",
  "description": "Reviewed exact translations for a BusinessRelationship field. The source and target must correspond to an existing field rule or document-type connection. A shared source, such as files[].kind, can have different translations for different document destinations.",
  "additionalProperties": false,
  "required": [
    "source",
    "targets",
    "translations"
  ],
  "properties": {
    "source": {
      "$ref": "#/components/schemas/PaymentMapSourcePath"
    },
    "targets": {
      "type": "array",
      "minItems": 1,
      "maxItems": 1,
      "items": {
        "type": "string",
        "enum": [
          "recipient.businessRelationship"
        ]
      },
      "description": "The Axiym controlled field for these translations. Each rule contains one target; use separate rules for other destinations."
    },
    "translations": {
      "$ref": "#/components/schemas/BusinessRelationshipValueMap"
    }
  }
}
```

### definition-36

`#/components/schemas/BusinessRelationshipValueMap`

```json
{
  "type": "object",
  "minProperties": 1,
  "propertyNames": {
    "type": "string",
    "minLength": 1,
    "pattern": "\\S"
  },
  "description": "Exact partner labels mapped to BusinessRelationship codes. Case and whitespace are significant. Many labels may map to the same code; only values used by your integration need entries. Existing Axiym codes pass unchanged and cannot be mapped to a different code.",
  "additionalProperties": {
    "$ref": "#/components/schemas/BusinessRelationship"
  }
}
```

### definition-37

`#/components/schemas/BusinessRelationship`

```json
{
  "type": "string",
  "description": "Relationship of the recipient to the sender.",
  "enum": [
    "SUPPLIER",
    "CUSTOMER",
    "CONTRACTOR",
    "SERVICE_PROVIDER",
    "GROUP_COMPANY",
    "SUBSIDIARY",
    "PARENT",
    "INVESTMENT_TARGET",
    "DEBTOR",
    "CREDITOR",
    "OTHER"
  ],
  "examples": [
    "SUPPLIER"
  ]
}
```

### definition-38

`#/components/schemas/PaymentMapAmountResolution`

```json
{
  "description": "How the intermediate amount.amount and amount.currency fields become exactly one of sourceAmount or destinationAmount in the prepared payout.",
  "oneOf": [
    {
      "$ref": "#/components/schemas/CurrencyPaymentMapAmount"
    },
    {
      "$ref": "#/components/schemas/FixedPaymentMapAmount"
    }
  ],
  "discriminator": {
    "propertyName": "method",
    "mapping": {
      "currency": "#/components/schemas/CurrencyPaymentMapAmount",
      "fixed": "#/components/schemas/FixedPaymentMapAmount"
    }
  }
}
```

### definition-39

`#/components/schemas/CurrencyPaymentMapAmount`

```json
{
  "title": "Resolve from currency",
  "type": "object",
  "description": "Compares the mapped amount currency with the funding account currency and recipient destination currency on each payout. A funding-currency match fixes sourceAmount; a recipient-only match fixes destinationAmount. If both match, sourceAmount is fixed. Invalid or unavailable required currency information, or a match to neither side, rejects the payout. The funding currency comes from Axiym account data, not the submitted payment.",
  "additionalProperties": false,
  "required": [
    "method",
    "fundingAccount",
    "recipientCurrency",
    "whenBothMatch",
    "whenNeitherMatches"
  ],
  "properties": {
    "method": {
      "type": "string",
      "enum": [
        "currency"
      ]
    },
    "fundingAccount": {
      "type": "string",
      "enum": [
        "sourceAccountId"
      ]
    },
    "recipientCurrency": {
      "type": "string",
      "enum": [
        "recipient.destination.currency"
      ]
    },
    "whenBothMatch": {
      "type": "string",
      "enum": [
        "sourceAmount"
      ]
    },
    "whenNeitherMatches": {
      "type": "string",
      "enum": [
        "reject"
      ]
    }
  }
}
```

### definition-40

`#/components/schemas/FixedPaymentMapAmount`

```json
{
  "title": "Fix one amount side",
  "type": "object",
  "description": "Always treats the mapped amount as the selected side. Its currency must match that side: the Axiym funding account for sourceAmount, or the mapped recipient destination for destinationAmount. A mismatch rejects the payout.",
  "additionalProperties": false,
  "required": [
    "method",
    "side",
    "requireMatchingCurrency"
  ],
  "properties": {
    "method": {
      "type": "string",
      "enum": [
        "fixed"
      ]
    },
    "side": {
      "type": "string",
      "enum": [
        "sourceAmount",
        "destinationAmount"
      ]
    },
    "requireMatchingCurrency": {
      "type": "boolean",
      "enum": [
        true
      ]
    }
  }
}
```

### definition-41

`#/components/schemas/PageInfo`

```json
{
  "type": "object",
  "description": "Cursor information for a paginated response.",
  "properties": {
    "hasNextPage": {
      "type": "boolean",
      "description": "When paginating forwards, are there more items?",
      "examples": [
        true
      ]
    },
    "endCursor": {
      "type": "string",
      "description": "When paginating forwards, the cursor to continue.",
      "examples": [
        "eyJvZmZzZXQiOjI1fQ=="
      ]
    }
  },
  "required": [
    "hasNextPage"
  ]
}
```

### definition-42

`#/components/responses/BadRequest`

```json
{
  "description": "Malformed or invalid request.",
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "HTTP status code, duplicated in the body."
          },
          "message": {
            "type": "string",
            "description": "Human-readable message describing the error."
          },
          "errors": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "message": {
                "type": "string"
              }
            },
            "description": "Additional error details; null when there are none."
          }
        },
        "required": [
          "code",
          "message",
          "errors"
        ]
      },
      "examples": {
        "Malformed JSON body": {
          "summary": "Malformed JSON body",
          "value": {
            "code": 400,
            "message": "Bad Request",
            "errors": {
              "message": "Failed to parse the request body as JSON: expected value at line 1 column 5"
            }
          }
        },
        "Generic": {
          "summary": "Generic",
          "value": {
            "code": 400,
            "message": "Invalid cursor",
            "errors": null
          }
        }
      }
    }
  },
  "headers": {
    "X-Request-Id": {
      "description": "Request identifier for tracing and support, echoed from the request or generated by Axiym.",
      "schema": {
        "type": "string",
        "format": "uuid",
        "examples": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ]
      }
    }
  }
}
```

### definition-43

`#/components/responses/Unauthorized`

```json
{
  "description": "Missing, expired, or invalid credentials.",
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "HTTP status code, duplicated in the body."
          },
          "message": {
            "type": "string",
            "description": "Human-readable message describing the error."
          },
          "errors": {
            "type": [
              "object",
              "null"
            ],
            "description": "Additional error details; null when there are none."
          }
        },
        "required": [
          "code",
          "message",
          "errors"
        ]
      },
      "examples": {
        "Example 1": {
          "summary": "Example 1",
          "value": {
            "code": 401,
            "message": "Unauthorized",
            "errors": null
          }
        }
      }
    }
  },
  "headers": {
    "X-Request-Id": {
      "description": "Request identifier for tracing and support, echoed from the request or generated by Axiym.",
      "schema": {
        "type": "string",
        "format": "uuid",
        "examples": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ]
      }
    }
  }
}
```

### definition-44

`#/components/responses/Forbidden`

```json
{
  "description": "Forbidden",
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "HTTP status code, duplicated in the body."
          },
          "message": {
            "type": "string",
            "description": "Human-readable message describing the error."
          },
          "errors": {
            "type": [
              "object",
              "null"
            ],
            "description": "Additional error details; null when there are none."
          }
        },
        "required": [
          "code",
          "message",
          "errors"
        ]
      },
      "examples": {
        "Example 1": {
          "summary": "Example 1",
          "value": {
            "code": 403,
            "message": "Forbidden",
            "errors": null
          }
        }
      }
    }
  },
  "headers": {
    "X-Request-Id": {
      "description": "Request identifier for tracing and support, echoed from the request or generated by Axiym.",
      "schema": {
        "type": "string",
        "format": "uuid",
        "examples": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ]
      }
    }
  }
}
```

### definition-45

`#/components/responses/InvalidParams`

```json
{
  "description": "The request failed validation or a business rule. Validation failures return `errors` keyed by request field. Business rejections return `errors: null` and explain the reason in `message`.",
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "HTTP status code, duplicated in the body."
          },
          "message": {
            "type": "string",
            "description": "`Invalid Parameters` for validation failures; the rejection reason otherwise."
          },
          "errors": {
            "type": [
              "object",
              "null"
            ],
            "description": "For validation failures, keys follow the request fields and values contain field errors or nested errors. Business rejections return `null`.",
            "additionalProperties": {
              "$ref": "#/components/schemas/ValidationFieldErrors"
            }
          }
        },
        "required": [
          "code",
          "message",
          "errors"
        ]
      },
      "examples": {
        "Flat field errors": {
          "summary": "Flat field errors",
          "value": {
            "code": 422,
            "message": "Invalid Parameters",
            "errors": {
              "amount": [
                {
                  "code": "length",
                  "message": null,
                  "params": {
                    "value": "",
                    "min": 1
                  }
                }
              ],
              "recipient": {
                "destination": {
                  "currency": [
                    {
                      "code": "invalid_currency",
                      "message": null,
                      "params": {
                        "value": "ZZZ"
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "Nested struct errors": {
          "summary": "Nested struct errors",
          "value": {
            "code": 422,
            "message": "Invalid Parameters",
            "errors": {
              "sender": {
                "address": {
                  "country": [
                    {
                      "code": "invalid_country",
                      "message": null,
                      "params": {
                        "value": "INVALID"
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "List item errors": {
          "summary": "List item errors",
          "value": {
            "code": 422,
            "message": "Invalid Parameters",
            "errors": {
              "sender": {
                "relationships": {
                  "0": {
                    "firstName": [
                      {
                        "code": "length",
                        "message": null,
                        "params": {
                          "value": "",
                          "min": 1
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "Business rejection": {
          "summary": "Business rejection",
          "value": {
            "code": 422,
            "message": "Documents Not Accepted",
            "errors": null
          }
        }
      }
    }
  },
  "headers": {
    "X-Request-Id": {
      "description": "Request identifier for tracing and support, echoed from the request or generated by Axiym.",
      "schema": {
        "type": "string",
        "format": "uuid",
        "examples": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ]
      }
    }
  }
}
```

### definition-46

`#/components/schemas/ValidationFieldErrors`

```json
{
  "description": "Nested validation errors keyed by field name or array index. Leaf values are arrays of `ValidationError` objects.",
  "oneOf": [
    {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      }
    },
    {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/components/schemas/ValidationFieldErrors"
      },
      "properties": {}
    }
  ]
}
```

### definition-47

`#/components/schemas/ValidationError`

```json
{
  "type": "object",
  "description": "One field-level validation error.",
  "required": [
    "code",
    "params"
  ],
  "properties": {
    "code": {
      "type": "string",
      "description": "Machine-readable validation rule code, such as `length`, `email`, or `invalid_currency`.",
      "examples": [
        "length"
      ]
    },
    "message": {
      "type": [
        "string",
        "null"
      ],
      "description": "Human-readable message.",
      "examples": [
        "string"
      ]
    },
    "params": {
      "type": "object",
      "description": "Rule-specific parameters, including `value`, the submitted input. Values may contain sensitive data; do not log them without redaction.",
      "properties": {
        "value": {
          "description": "The submitted value that failed validation.",
          "examples": [
            "string"
          ]
        }
      }
    }
  }
}
```

### definition-48

`#/components/responses/InternalError`

```json
{
  "description": "Unexpected server error.",
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "HTTP status code, duplicated in the body."
          },
          "message": {
            "type": "string",
            "description": "Human-readable message describing the error."
          },
          "errors": {
            "type": [
              "object",
              "null"
            ],
            "description": "Additional error details; null when there are none."
          }
        },
        "required": [
          "code",
          "message",
          "errors"
        ]
      },
      "examples": {
        "Example 1": {
          "summary": "Example 1",
          "value": {
            "code": 500,
            "message": "Internal Error",
            "errors": null
          }
        }
      }
    }
  },
  "headers": {
    "X-Request-Id": {
      "description": "Request identifier for tracing and support, echoed from the request or generated by Axiym.",
      "schema": {
        "type": "string",
        "format": "uuid",
        "examples": [
          "3fa85f64-5717-4562-b3fc-2c963f66afa6"
        ]
      }
    }
  }
}
```
