---
updatedAt: 2026-06-15T11:12:35.000Z
agentTools:
  projectIndex: https://docs.mesh.complyadvantage.com/llms.txt
---

# Bulk create or update CTR transaction locations

Bulk create or update CTR transaction location prefill information, identified by their external identifier: existing entries are updated and new ones are created. Each entry is independently validated and processed — partial success is a valid outcome.

You need the account-level "Account has access to FinCEN CTR reports" permission and the user-level "Manage settings such as pre-fill data for FinCEN CTR reports" permission to use this endpoint.

# OpenAPI definition

```json
{
  "components": {
    "schemas": {
      "reg_BulkCreateResponse": {
        "description": "Response for a bulk create/update operation.",
        "properties": {
          "results": {
            "description": "Per-item results.",
            "items": {
              "$ref": "#/components/schemas/reg_BulkCreateResult"
            },
            "type": "array"
          },
          "summary": {
            "$ref": "#/components/schemas/reg_BulkCreateSummary"
          }
        },
        "required": [
          "results",
          "summary"
        ],
        "type": "object"
      },
      "reg_BulkCreateResult": {
        "description": "Result for a single item in the bulk operation.",
        "properties": {
          "errors": {
            "description": "Validation errors for this item. Only present on failure.",
            "items": {
              "$ref": "#/components/schemas/reg_ValidationError"
            },
            "nullable": true,
            "type": "array"
          },
          "external_identifier": {
            "description": "The client-supplied identifier echoed back from the request.",
            "type": "string"
          },
          "operation": {
            "description": "The operation performed. Only present on success.",
            "enum": [
              "CREATED",
              "UPDATED"
            ],
            "nullable": true,
            "type": "string"
          },
          "prefill_information_identifier": {
            "description": "Identifier of the created or updated prefill information record. Only present on success.",
            "format": "uuid",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "Outcome of processing this item.",
            "enum": [
              "SUCCESS",
              "FAILURE"
            ],
            "type": "string"
          }
        },
        "required": [
          "external_identifier",
          "status"
        ],
        "type": "object"
      },
      "reg_BulkCreateSummary": {
        "description": "Aggregated counts for the bulk operation.",
        "properties": {
          "failed": {
            "description": "Number of items that failed processing.",
            "format": "int32",
            "type": "integer"
          },
          "succeeded": {
            "description": "Number of items successfully processed.",
            "format": "int32",
            "type": "integer"
          },
          "total": {
            "description": "Total number of items in the request.",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "failed",
          "succeeded",
          "total"
        ],
        "type": "object"
      },
      "reg_BulkCreateTransactionLocationRequest": {
        "description": "Bulk create/update request for CTR transaction locations.",
        "properties": {
          "transaction_locations": {
            "description": "List of transaction location entries to create or update.",
            "items": {
              "$ref": "#/components/schemas/reg_TransactionLocationItem"
            },
            "maxItems": 10000,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "transaction_locations"
        ],
        "type": "object"
      },
      "reg_CasinoCardClubSubType": {
        "description": "Casino or card club sub-type.",
        "nullable": true,
        "properties": {
          "other_type": {
            "description": "Free-text description. Required when type is OTHER_CARD_CLUB_OR_CASINO. No leading/trailing spaces, no tabs/newlines.",
            "maxLength": 50,
            "minLength": 1,
            "nullable": true,
            "pattern": "^[^ \\t\\n\\r\\v\\f]([^\\t\\n\\r\\v\\f]*[^ \\t\\n\\r\\v\\f])?$",
            "type": "string"
          },
          "type": {
            "description": "The casino or card club sub-type.",
            "enum": [
              "STATE_LICENSED_CASINO",
              "TRIBAL_AUTHORIZED_CASINO",
              "CARD_CLUB",
              "OTHER_CARD_CLUB_OR_CASINO"
            ],
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "reg_Classification": {
        "description": "Institution classification. sub_type is required when type is CASINO_OR_CARD_CLUB. other_type is required when type is OTHER_CLASSIFICATION.",
        "properties": {
          "other_type": {
            "description": "Free-text description. Required when type is OTHER_CLASSIFICATION. No leading/trailing spaces, no tabs/newlines.",
            "maxLength": 50,
            "minLength": 1,
            "nullable": true,
            "pattern": "^[^ \\t\\n\\r\\v\\f]([^\\t\\n\\r\\v\\f]*[^ \\t\\n\\r\\v\\f])?$",
            "type": "string"
          },
          "sub_type": {
            "$ref": "#/components/schemas/reg_CasinoCardClubSubType"
          },
          "type": {
            "description": "The institution classification type.",
            "enum": [
              "CASINO_OR_CARD_CLUB",
              "DEPOSITORY_INSTITUTION",
              "MSB",
              "SECURITIES_OR_FUTURES",
              "OTHER_CLASSIFICATION"
            ],
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "reg_Ein": {
        "description": "Employer Identification Number. Provide value (9-digit numeric string) or set is_unknown to true.",
        "properties": {
          "is_unknown": {
            "description": "Set to true if the EIN is unknown. When true, value must be null.",
            "nullable": true,
            "type": "boolean"
          },
          "value": {
            "description": "9-digit numeric EIN. Required when is_unknown is not true. Must not be all same digits or sequential.",
            "maxLength": 9,
            "minLength": 9,
            "nullable": true,
            "pattern": "^[0-9]{9}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "reg_InstitutionAddress": {
        "description": "Institution address.",
        "properties": {
          "city": {
            "description": "City name. No leading/trailing spaces, no tabs/newlines.",
            "maxLength": 50,
            "minLength": 1,
            "nullable": true,
            "pattern": "^[^ \\t\\n\\r\\v\\f]([^\\t\\n\\r\\v\\f]*[^ \\t\\n\\r\\v\\f])?$",
            "type": "string"
          },
          "country": {
            "description": "Country code. Must be US or a US territory (AS, GU, MH, MP, PR, PW, VI, FM).",
            "enum": [
              "US",
              "AS",
              "GU",
              "MH",
              "MP",
              "PR",
              "PW",
              "VI",
              "FM"
            ],
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "state": {
            "description": "State/territory code (2-letter). Required. If country is US: valid US state code (e.g. AL, CA, NY) including DC and military codes (AA, AE, AP). If country is a US territory: must match the territory code (e.g. country=PR → state=PR).",
            "nullable": true,
            "type": "string"
          },
          "street_address": {
            "description": "Street address. No leading/trailing spaces, no tabs/newlines.",
            "maxLength": 100,
            "minLength": 1,
            "pattern": "^[^ \\t\\n\\r\\v\\f]([^\\t\\n\\r\\v\\f]*[^ \\t\\n\\r\\v\\f])?$",
            "type": "string"
          },
          "zip": {
            "description": "US ZIP code: 5-digit or 9-digit without dash. Must not end in 0000 or 9999.",
            "minLength": 1,
            "nullable": true,
            "pattern": "^([0-9]{5}([0-9]{4})?)(?<!0000|9999)$",
            "type": "string"
          }
        },
        "required": [
          "city",
          "country",
          "state",
          "street_address",
          "zip"
        ],
        "type": "object"
      },
      "reg_InstitutionIdentification": {
        "description": "Optional institution identification. When type is provided, value is required.",
        "nullable": true,
        "properties": {
          "type": {
            "description": "Identification type.",
            "enum": [
              "CRD",
              "IARD",
              "NFA",
              "RSSD",
              "SEC"
            ],
            "nullable": true,
            "type": "string"
          },
          "value": {
            "description": "Identification value. Required when type is not null. Alphanumeric, 1-10 characters. Must not be all same digits or sequential (non-consecutive, non-incremental).",
            "maxLength": 10,
            "minLength": 1,
            "nullable": true,
            "pattern": "^[a-zA-Z0-9]*$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "reg_PrefillTransactionLocation": {
        "description": "FinCEN CTR transaction location prefill data.",
        "properties": {
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reg_InstitutionAddress"
              }
            ],
            "nullable": true
          },
          "alternate_name": {
            "description": "Alternate or DBA name. No leading/trailing spaces, no tabs/newlines.",
            "maxLength": 150,
            "minLength": 1,
            "nullable": true,
            "pattern": "^[^ \\t\\n\\r\\v\\f]([^\\t\\n\\r\\v\\f]*[^ \\t\\n\\r\\v\\f])?$",
            "type": "string"
          },
          "classification": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reg_Classification"
              }
            ],
            "nullable": true
          },
          "ein": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reg_Ein"
              }
            ],
            "nullable": true
          },
          "identification": {
            "allOf": [
              {
                "$ref": "#/components/schemas/reg_InstitutionIdentification"
              }
            ],
            "nullable": true
          },
          "name": {
            "description": "Legal name. No leading/trailing spaces, no tabs/newlines.",
            "maxLength": 150,
            "minLength": 1,
            "nullable": true,
            "pattern": "^[^ \\t\\n\\r\\v\\f]([^\\t\\n\\r\\v\\f]*[^ \\t\\n\\r\\v\\f])?$",
            "type": "string"
          },
          "primary_regulator": {
            "description": "Primary federal regulator. Allowed values depend on classification type — CASINO_OR_CARD_CLUB: IRS. MSB: IRS. DEPOSITORY_INSTITUTION: FRB, FDIC, IRS, NCUA, OCC, UNKNOWN_PRIMARY_REGULATOR. SECURITIES_OR_FUTURES: CFTC, SEC, UNKNOWN_PRIMARY_REGULATOR. OTHER_CLASSIFICATION: all values allowed.",
            "enum": [
              "CFTC",
              "FRB",
              "FDIC",
              "IRS",
              "NCUA",
              "OCC",
              "SEC",
              "UNKNOWN_PRIMARY_REGULATOR"
            ],
            "type": "string"
          }
        },
        "required": [
          "address",
          "classification",
          "ein",
          "name",
          "primary_regulator"
        ],
        "type": "object"
      },
      "reg_TransactionLocationItem": {
        "description": "A single transaction location item in a bulk request.",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/reg_PrefillTransactionLocation"
          },
          "external_identifier": {
            "description": "Client-supplied identifier used to correlate this item in the bulk response and as the upsert key.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "data",
          "external_identifier"
        ],
        "type": "object"
      },
      "reg_ValidationError": {
        "description": "Validation error for a specific field.",
        "nullable": true,
        "properties": {
          "field": {
            "description": "JSON Pointer path to the field that failed validation (e.g. /data/address/zip).",
            "type": "string"
          },
          "reasons": {
            "description": "Reasons for the validation failure.",
            "items": {
              "$ref": "#/components/schemas/reg_ValidationErrorReason"
            },
            "type": "array"
          },
          "rejected": {
            "description": "The value that was rejected.",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "field",
          "reasons"
        ],
        "type": "object"
      },
      "reg_ValidationErrorReason": {
        "description": "Reason for a validation failure.",
        "properties": {
          "key": {
            "description": "Machine-readable error key.",
            "type": "string"
          },
          "message": {
            "description": "Human-readable description of the validation failure.",
            "type": "string"
          },
          "parameters": {
            "additionalProperties": {
              "description": "Additional context parameters for the error.",
              "type": "object"
            },
            "description": "Additional context parameters for the error.",
            "type": "object"
          }
        },
        "required": [
          "key",
          "message",
          "parameters"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "description": "HTTP Bearer Token Authentication",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "title": "Mesh API",
    "version": "v2.0"
  },
  "openapi": "3.0.3",
  "paths": {
    "/v2/regulatory-reports/prefill-information/fincen/ctr/transaction-locations/bulk": {
      "post": {
        "description": "Bulk create or update CTR transaction location prefill information, identified by their external identifier: existing entries are updated and new ones are created. Each entry is independently validated and processed — partial success is a valid outcome.\n\nYou need the account-level \"Account has access to FinCEN CTR reports\" permission and the user-level \"Manage settings such as pre-fill data for FinCEN CTR reports\" permission to use this endpoint.",
        "operationId": "regulatoryReportingBulkUpsertCtrTransactionLocations",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reg_BulkCreateTransactionLocationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reg_BulkCreateResponse"
                }
              }
            },
            "description": "OK"
          }
        },
        "summary": "Bulk create or update CTR transaction locations",
        "tags": [
          "Regulatory Reporting"
        ]
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "servers": [
    {
      "description": "ComplyAdvantage Mesh API",
      "url": "https://api.mesh.complyadvantage.com"
    }
  ],
  "tags": [
    {
      "name": "Regulatory Reporting"
    }
  ]
}
```