> ## Documentation Index
> Fetch the complete documentation index at: https://docs.meld.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Search payment method field requirements

> Returns per-provider field requirements and provider API path mappings for a payment method. Nested field `key` values are the leaf JSON property (`city`), not the catalog PK (`beneficiaryAddress.city`); nest them under `parentKey`. When `serviceProvider` is omitted, returns the union of required fields across providers (one block per category + payment method + country + accountHolderType; `providerPath` is omitted). `allowedValues` is returned only when all providers contributing that field publish the same non-empty, case-sensitive set (order and exact duplicates do not matter). Missing or differing sets omit options; omission does not mean unrestricted. Validate against provider-scoped requirements. A field is `required` if any matching provider requires it. The response is the account-facing contract for the requested category. Offramp keys with `derived=false` are what the account sends in payout details; onramp keys are the receiving-bank fields on the deposit instruction. `derived=true` fields (`accountHolderType`, `firstName`, `lastName`, `fullName`) are still required by the provider; Meld fills them from the customer. Omit `accountHolderType` to return both the INDIVIDUAL and BUSINESS slices. All filters are optional and can be combined; providing no filters returns the union across all stored requirements. Provider scope rules:
- No Basic Auth and no `Meld-Account-Id`: results come from the global dataset.
- Basic Auth only: results are restricted to the authenticated identity's `providers` claim.
- `Meld-Account-Id` only: results are restricted to providers configured for that account.
- Both Basic Auth and `Meld-Account-Id`: results are restricted to the intersection of both provider sets.
- Explicit partner filters are intersected with the resolved provider scope.

Explicit `serviceProvider` filtering is intersected with the resolved provider scope.
If the effective provider scope contains no providers, this collection endpoint returns `200` with an empty result.



## OpenAPI

````yaml /openapi/networkpartner-20260203.json get /network-partner/supported/payment-methods/requirements
openapi: 3.1.0
info:
  title: NETWORK PARTNER
  version: '2026-02-03'
  description: ''
servers:
  - url: https://api-sb.meld.io
    description: Meld API sandbox
  - url: https://api.meld.io
    description: Meld API production
security: []
tags:
  - name: Supported
    description: ''
paths:
  /network-partner/supported/payment-methods/requirements:
    get:
      tags:
        - Supported
      summary: Search payment method field requirements
      description: >-
        Returns per-provider field requirements and provider API path mappings
        for a payment method. Nested field `key` values are the leaf JSON
        property (`city`), not the catalog PK (`beneficiaryAddress.city`); nest
        them under `parentKey`. When `serviceProvider` is omitted, returns the
        union of required fields across providers (one block per category +
        payment method + country + accountHolderType; `providerPath` is
        omitted). `allowedValues` is returned only when all providers
        contributing that field publish the same non-empty, case-sensitive set
        (order and exact duplicates do not matter). Missing or differing sets
        omit options; omission does not mean unrestricted. Validate against
        provider-scoped requirements. A field is `required` if any matching
        provider requires it. The response is the account-facing contract for
        the requested category. Offramp keys with `derived=false` are what the
        account sends in payout details; onramp keys are the receiving-bank
        fields on the deposit instruction. `derived=true` fields
        (`accountHolderType`, `firstName`, `lastName`, `fullName`) are still
        required by the provider; Meld fills them from the customer. Omit
        `accountHolderType` to return both the INDIVIDUAL and BUSINESS slices.
        All filters are optional and can be combined; providing no filters
        returns the union across all stored requirements. Provider scope rules:

        - No Basic Auth and no `Meld-Account-Id`: results come from the global
        dataset.

        - Basic Auth only: results are restricted to the authenticated
        identity's `providers` claim.

        - `Meld-Account-Id` only: results are restricted to providers configured
        for that account.

        - Both Basic Auth and `Meld-Account-Id`: results are restricted to the
        intersection of both provider sets.

        - Explicit partner filters are intersected with the resolved provider
        scope.


        Explicit `serviceProvider` filtering is intersected with the resolved
        provider scope.

        If the effective provider scope contains no providers, this collection
        endpoint returns `200` with an empty result.
      operationId: search-payment-method-field-requirements
      parameters:
        - name: Meld-Version
          in: header
          description: Dated API version to use for this request, e.g. `2026-02-03`.
          required: false
          schema:
            type: string
            example: '2026-02-03'
        - description: Individual or business slice. Omit to return both.
          name: accountHolderType
          in: query
          schema:
            $ref: '#/components/schemas/AccountHolderType'
        - description: Provider category
          example: CRYPTO_OFFRAMP
          name: category
          in: query
          schema:
            $ref: '#/components/schemas/Category'
        - description: Country code
          example: DO
          name: countryCode
          in: query
          schema:
            type: string
        - description: Canonical payment method code
          example: DO_BANK_TRANSFER
          name: paymentMethod
          in: query
          schema:
            type: string
        - description: Service provider identifier
          example: DUENETWORK
          name: serviceProvider
          in: query
          schema:
            type: string
        - description: >-
            Optional. Base58 encoded account id. Restricts results to providers
            configured for the account. If Basic Auth is also present, the
            effective scope is the intersection of authenticated providers and
            account providers.
          name: Meld-Account-Id
          in: header
          schema:
            type: string
      responses:
        '200':
          description: Payment method field requirements
          content:
            application/json:
              examples:
                paymentMethodRequirements:
                  summary: Field requirements for a specific payment method
                  value:
                    requirements:
                      - serviceProvider: DUENETWORK
                        category: CRYPTO_OFFRAMP
                        paymentMethod: DO_BANK_TRANSFER
                        countryCode: DO
                        accountHolderType: INDIVIDUAL
                        fields:
                          - key: bankCode
                            label: Bank / institution code
                            fieldType: STRING
                            required: true
                            providerPath: financialInstitutionId
                            displayOrder: 1
              schema:
                $ref: '#/components/schemas/Response1'
        '400':
          description: Request rejected - see the code and message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The credentials are valid but not for this account or provider scope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '405':
          description: The path exists but not for this method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '406':
          description: No representation available for the requested Accept header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '415':
          description: Request body media type not supported
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected failure in this service
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security: []
components:
  schemas:
    AccountHolderType:
      description: Customer type for a payment method field requirement slice
      type: string
      enum:
        - INDIVIDUAL
        - BUSINESS
    Category:
      description: Categories of functionality offered by a service provider
      type: string
      enum:
        - CRYPTO_ONRAMP
        - CRYPTO_OFFRAMP
        - CRYPTO_TRANSFER
        - BANK_LINKING
        - FIAT_PAYMENTS
        - CRYPTO_VIRTUAL_ACCOUNT_ONRAMP
        - CRYPTO_VIRTUAL_ACCOUNT_OFFRAMP
        - CUSTOMER_KYC
        - CRYPTO_ONRAMP_SWAP
        - CRYPTO_OFFRAMP_SWAP
    Response1:
      description: Response wrapper for payment method field requirements
      type: object
      properties:
        requirements:
          type: array
          items:
            $ref: '#/components/schemas/PaymentMethodRequirements1'
          description: List of payment method field requirements
    ErrorResponse:
      type: object
      description: The error body every failed request on this service returns.
      required:
        - code
        - message
        - timestamp
      properties:
        code:
          type: string
          description: What went wrong, as a stable value to branch on.
          enum:
            - BAD_REQUEST
            - CONFLICT
            - ENCRYPTION_ERROR
            - FORBIDDEN
            - JSON_PROCESSING_ERROR
            - METHOD_NOT_ALLOWED
            - UNSUPPORTED_MEDIA_TYPE
            - NOT_ACCEPTABLE
            - NOT_FOUND
            - NOT_SUPPORTED
            - SERVICE_PROVIDER_ERROR
            - UNAUTHORIZED
            - UNEXPECTED_ERROR
        message:
          type: string
          description: >-
            What happened, in words, naming the value that was rejected or not
            found.
        requestId:
          type: string
          description: >-
            The request's id when one reached this service. Quote it in a
            support request. Absent when nothing upstream set one.
        timestamp:
          type: string
          format: date-time
          description: >-
            When the failure occurred. ISO 8601, UTC
            (`YYYY-MM-DDThh:mm:ss.sss+00:00`).
    PaymentMethodRequirements1:
      description: Field requirements for one provider payment method
      type: object
      properties:
        serviceProvider:
          type: string
          description: Service provider identifier
          examples:
            - DUENETWORK
        category:
          description: Provider category
          type: string
          examples:
            - CRYPTO_OFFRAMP
          allOf:
            - $ref: '#/components/schemas/Category'
        paymentMethod:
          type: string
          description: Canonical payment method code
          examples:
            - DO_BANK_TRANSFER
        countryCode:
          type: string
          description: Country code
          examples:
            - DO
        accountHolderType:
          description: Individual or business slice this block applies to
          type: string
          allOf:
            - $ref: '#/components/schemas/AccountHolderType'
        fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldRequirement1'
          description: Account-facing fields for this corridor
    FieldRequirement1:
      description: A single Meld field requirement for a payment method
      type: object
      properties:
        key:
          type: string
          description: >-
            Field key. Public requirements use the leaf JSON property for nested
            fields (`city`); admin catalog endpoints return the catalog PK
            (`beneficiaryAddress.city`) so upsert/delete stay copy-pasteable.
          examples:
            - bankCode
        label:
          type: string
          description: Human-readable label
          examples:
            - Bank / institution code
        fieldType:
          description: Field data type
          type: string
          examples:
            - STRING
          allOf:
            - $ref: '#/components/schemas/PaymentMethodFieldType'
        parentKey:
          type: string
          description: >-
            Parent JSON object name. Nested fields sit under `parentKey`, e.g.
            `{ "beneficiaryAddress": { "city": "Santo Domingo" } }`.
          examples:
            - beneficiaryAddress
        required:
          type: boolean
          description: >-
            Whether this field is required for the corridor. Offramp: required
            in payout details unless `derived` is true. Onramp: required on the
            receiving-bank / deposit-instruction projection.
          examples:
            - true
        providerPath:
          type: string
          description: Provider API path for this field
          examples:
            - financialInstitutionId
        displayOrder:
          type: integer
          format: int32
          description: Display order
          examples:
            - 1
        allowedValues:
          type: array
          items:
            type: string
          description: >-
            Allowed values for ENUM fields. Provider-scoped reads return that
            provider's set. Union mode returns options only when every provider
            contributing this field publishes the same non-empty, case-sensitive
            set, ignoring order and exact duplicates. Otherwise omitted;
            omission does not mean unrestricted. Fetch provider-scoped
            requirements before validating provider-native values.
        derived:
          type: boolean
          description: >-
            When true, Meld fills this field from the customer (`type`, `name`).
            Do not send it in payout details. The provider still requires it
            when `required` is true.
          examples:
            - false
    PaymentMethodFieldType:
      type: string
      enum:
        - STRING
        - OBJECT
        - ENUM
        - NUMBER

````