> For the complete documentation index, see [llms.txt](https://docs.nexusglobalpayments.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nexusglobalpayments.org/apis/address-types-and-inputs.md).

# Address Types and Inputs

## Gets all the address types AND inputs for a specified Country

> Returns all address types AND their associated inputs for a specified country.

```json
{"openapi":"3.1.0","info":{"title":"Nexus API","version":"v1"},"tags":[{"name":"Address Types","description":"Address types and input field definitions for recipient account or proxy details, by country or address type."}],"servers":[{"url":"http://localhost:8080","description":"Local simulator (make run / make docker-run)"},{"url":"https://nexus-ai-simulator-683365449922.asia-southeast1.run.app","description":"Deployed simulator (Cloud Run, asia-southeast1) - indicative, not authoritative"}],"security":[{"nexusOAuth":["address.read"]}],"components":{"securitySchemes":{"nexusOAuth":{"type":"oauth2","description":"OAuth2 client credentials token issued per participant.","flows":{"clientCredentials":{"tokenUrl":"https://auth.nexus.net/realms/nexus/protocol/openid-connect/token","scopes":{"countries.read":"Read country and currency reference data","address.read":"Read address types and input definitions","institutions.read":"Read the financial institution directory","quotes.read":"Retrieve FX quotes for a corridor and amount","quote.read":"Compute fees and settlement amounts from a PSP supplied rate","fees.read":"Retrieve the Destination Agent fee formula","payment.process":"Submit and receive ISO 20022 payment messages","admin.downtime.notify":"Submit admi.004 downtime notifications for a Direct Participant IPS","fxp.payment.read":"Query the FXP's own completed payments","rates.read":"Read FXP rate records.","rates.write":"Create or withdraw FXP rate records.","tiers.read":"Read FXP tier records.","tiers.write":"Create or withdraw FXP tier records.","relationships.read":"Read FXP–PSP relationship records.","relationships.write":"Create, update, or delete FXP–PSP relationship records."}}}}},"schemas":{"AddressTypeWithInputsResponse":{"type":"object","description":"Address type metadata including input definitions.","properties":{"addressTypeId":{"type":"string","description":"Uppercase address type identifier.","pattern":"^[A-Z]+$"},"countries":{"type":"array","description":"ISO 3166-1 alpha-2 country codes where the address type is supported.","items":{"type":"string"}},"addressTypeCode":{"type":"string","description":"Address type code."},"clearingSystemId":{"type":"string","description":"Clearing system identifier."},"proxyDirectoryId":{"type":"string","description":"Proxy directory identifier."},"displayOrder":{"type":"integer","format":"int32","description":"Display order for UI presentation."},"inputs":{"type":"array","description":"Input definitions for the address type.","items":{"$ref":"#/components/schemas/AddressInputResponse"}}},"required":["addressTypeCode","addressTypeId","countries","inputs"]},"AddressInputResponse":{"type":"object","description":"Address input definition.","properties":{"addressInputId":{"type":"string","description":"Address input identifier."},"label":{"$ref":"#/components/schemas/AddressLabelResponse","description":"Localized display label for the input."},"attributes":{"$ref":"#/components/schemas/AddressInputAttributesResponse","description":"Input attributes and validation metadata."},"iso20022XPath":{"$ref":"#/components/schemas/Iso20022XPathResponse","description":"ISO 20022 XPath mappings."}}},"AddressLabelResponse":{"type":"object","description":"Localized label for an address input.","properties":{"addressTypeCode":{"type":"string","description":"Address type code."},"title":{"$ref":"#/components/schemas/LocalizedTitleResponse","description":"Localized title text."}}},"LocalizedTitleResponse":{"type":"object","description":"Localized title values.","properties":{"en":{"type":"string","description":"English label."},"de":{"type":"string","description":"German label."}}},"AddressInputAttributesResponse":{"type":"object","description":"Attributes and validation metadata for an address input.","properties":{"name":{"type":"string","description":"Field name."},"type":{"type":"string","description":"Field type."},"pattern":{"type":"string","description":"Regex pattern for validation."},"placeholder":{"type":"string","description":"Placeholder text."},"required":{"type":"boolean","description":"Whether the input is required."},"value":{"type":"string","description":"Default or fixed value."}}},"Iso20022XPathResponse":{"type":"object","description":"ISO 20022 XPath references for the input.","properties":{"acmt023":{"type":"string","description":"XPath in acmt.023 message."},"pacs008":{"type":"string","description":"XPath in pacs.008 message."}}},"ErrorApiResponse":{"type":"object","description":"Standard structured rejection body. Returned for all non-2xx responses produced by the auth sidecar or the application. Gateway level errors (405, 409, 413, 429, 502, 503, 504) do NOT carry this body.","properties":{"statusCode":{"type":"string","description":"Business-level status code. Always RJCT (Rejected) — the structured error body is only returned for rejection cases. Successful responses use HTTP status alone (200 OK for sync, 202 Accepted for async ingress) with no structured statusCode body.","enum":["RJCT"],"maxLength":4},"reasonCode":{"type":"string","description":"Categorised reason code. Three families: TE (Technical Error, e.g. TE001/TE002/TE099), AE (Authentication / Authorization Error, e.g. AE001–AE004, sidecar-enforced), BE (Business Error). BE001–BE020 are raised by the Payments endpoints; BE021–BE027 are raised by the FXP endpoints.","enum":["AE001","AE002","AE003","AE004","BE001","BE002","BE005","BE006","BE007","BE008","BE009","BE011","BE012","BE016","BE017","BE018","BE019","BE020","BE021","BE022","BE023","BE024","BE025","BE026","BE027","TE001","TE002","TE099"],"maxLength":5,"pattern":"[A-Z]{2}[0-9]{3}"},"name":{"type":"string","description":"Machine-readable business error name from the reason code catalogue.","maxLength":50,"pattern":"[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*"},"description":{"type":"string","description":"Human-readable error description. MUST NOT contain PII (CD-INV-09).","maxLength":500}},"required":["description","name","reasonCode","statusCode"]}}},"paths":{"/v1/countries/{countryCode}/address-types-and-inputs":{"get":{"tags":["Address Types"],"summary":"Gets all the address types AND inputs for a specified Country","description":"Returns all address types AND their associated inputs for a specified country.","operationId":"listAddressTypesWithInputs","parameters":[{"name":"Accept","in":"header","description":"application/json","required":true,"schema":{"type":"string","default":"application/json"}},{"name":"countryCode","in":"path","description":"ISO 3166-1 alpha-2 uppercase country code used to scope the lookup. Must match the Sender’s selected destination country.","required":true,"schema":{"type":"string","maxLength":2,"minLength":2,"pattern":"^[A-Z]{2}$"}},{"name":"If-None-Match","in":"header","description":"Optional. ETag value from a previous response for conditional GET. If it matches the current entity tag, the server returns 304 Not Modified with no body.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Address types and inputs for the specified country.","headers":{"ETag":{"description":"Entity tag for cache validation","style":"simple","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AddressTypeWithInputsResponse"}}}}},"304":{"description":"Not Modified. The resource has not changed since the last request.","headers":{"ETag":{"description":"Entity tag for cache validation","style":"simple","schema":{"type":"string"}}}},"400":{"description":"Invalid Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"401":{"description":"Authentication Failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"403":{"description":"Authorization Failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"405":{"description":"Method Not Allowed. The HTTP method is not supported for this endpoint. Use the correct HTTP method.","headers":{"Allow":{"description":"Permitted HTTP methods for this endpoint","schema":{"type":"string"}}}},"429":{"description":"Too Many Requests. Rate limit exceeded. The Retry-After header indicates when to retry. Back off and retry after the indicated duration.","headers":{"Retry-After":{"description":"Duration after which the caller may retry","schema":{"type":"integer","minimum":0}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponse"}}}},"502":{"description":"Bad Gateway. The gateway received an invalid response from the upstream service. Retry with exponential backoff. If persistent, escalate."},"503":{"description":"Service Unavailable. The upstream service is temporarily unavailable, for example during rolling deployment. Retry with exponential backoff."},"504":{"description":"Gateway Timeout. The upstream service did not respond within the gateway's timeout window. Retry with exponential backoff."}}}}}}
```
