---
updatedAt: 2026-04-07T18:02:26.000Z
---

Fetch the complete documentation index at: https://developers.pismo.io/pismo-docs/llms.txt. Use this file to discover all available pages before exploring further.

# Get configuration by hierarchy

Get a payment methods configuration based on the hierarchy from the most granular to the least granular (account > program > org).

**Note:** This is a PCI endpoint, use the https://gw-pci.pismolabs.io environment. 


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Core platform - Payment configurations",
    "version": "1.0.0",
    "description": "Endpoints to allow payment configuration management.",
    "contact": {
      "name": "API Support",
      "url": "https://developers.pismolabs.io/pismo-docs/docs/support"
    },
    "license": {
      "name": "Copyright Pismo"
    }
  },
  "servers": [
    {
      "url": "https://sandbox.pismolabs.io",
      "description": "Sandbox API server for testing"
    },
    {
      "url": "https://gw-pci.pismolabs.io",
      "description": "Sandbox PCI API server for testing"
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Account access token. Tokens can expire quickly, which can result in an \"Unauthorized\" error.",
        "bearerFormat": "JWT"
      }
    },
    "responses": {
      "400BadRequest": {
        "description": "Bad request"
      },
      "401Unauthorized": {
        "description": "Access token is missing or invalid"
      },
      "403Forbidden": {
        "description": "The request has been lost"
      },
      "404NotFound": {
        "description": "The specified resource was not found"
      },
      "500InternalServer": {
        "description": "Internal server error"
      }
    },
    "schemas": {
      "AuthorizationConfig": {
        "type": "object",
        "description": "Group of configurations related to the authorization flow.",
        "properties": {
          "networks": {
            "$ref": "#/components/schemas/Networks"
          },
          "cancellation_threshold": {
            "type": "integer",
            "description": "Time in minutes after which to cancel the operation that has been approved but hasn't received a confirmation.",
            "example": 1440,
            "minimum": 30,
            "maximum": 86400,
            "default": 14400
          },
          "confirmation_verification_endpoint": {
            "type": "string",
            "description": "External endpoint to call to verify whether an authorization is confirmed. If this endpoint is not configured, there is no external verification and the payment method endpoint performs a direct confirmation call.",
            "example": "https://yourverificationendpoint.com"
          },
          "confirmation_verification_mtls": {
            "type": "boolean",
            "description": "Should the confirmation verification endpoint be called using Mutual Transport Layer Security (mTLS)? This can only be `true` if `confirmation_verification_endpoint` and `confirmation_verification_mtls_prefix` are passed. Default is `false`.",
            "example": true,
            "default": false
          },
          "confirmation_verification_mtls_prefix": {
            "type": "string",
            "description": "Prefix to be used when the verification endpoint is called using mTLS. This prefix is appended to the host configured in the confirmation verification endpoint when using mTLS. The prefix can be set and is **REQUIRED**  only if `confirmation_verification_mtls` is `true` and the `confirmation_verification_endpoint` is configured.",
            "example": "url-prefix"
          },
          "confirmation_verification_rate": {
            "type": "integer",
            "description": "Time in minutes for the platform to call the external endpoint to verify whether the authorization is confirmed. This verification takes place until either the authorization is confirmed or until the number of minutes specified in this field is reached. \nIf this field is present, the `confirmation_verification_endpoint` is required.\n",
            "example": 30,
            "minimum": 5,
            "maximum": 1440,
            "default": 60
          },
          "allow_authorization_by_document_number": {
            "type": "boolean",
            "description": "Is org/program/account allowed to be authorized using document number as the account holder verification method? Default is `false`.",
            "example": true,
            "default": false
          },
          "require_external_authentication": {
            "type": "boolean",
            "description": "Does this org/program/account require a call to an external authentication entity? Default is `false`.",
            "example": true,
            "default": false
          },
          "update_balance_after_discharge": {
            "type": "boolean",
            "description": "If set to `true`, the platform updates account balances only after the discharge process is completed. By default, this value is `false`, and the platform updates account balances during the authorization process. This field applies to credit authorizations only.",
            "example": true,
            "default": false
          },
          "rules": {
            "$ref": "#/components/schemas/Rules"
          }
        }
      },
      "DenialReasons": {
        "type": "object",
        "description": "Denial reasons linked to a rule.",
        "additionalProperties": {
          "$ref": "#/components/schemas/ReasonConfig"
        }
      },
      "Networks": {
        "type": "array",
        "description": "List of configurations related to a network that is processed by the Payment methods API.",
        "items": {
          "type": "object",
          "description": "Configurations related to a network.",
          "properties": {
            "identifier": {
              "type": "string",
              "description": "Network identifier. This field is used to find the configuration based on the network name received in the payment methods authorization call. This field is not case-sensitive.",
              "example": "Mastercard"
            },
            "hsm_keys_id": {
              "type": "string",
              "description": "HSM keys ID. This field is used to find the HSM keys for performing PIN validation. This value should be provided by the Pismo representative during HSM keys creation.",
              "example": "123456"
            }
          }
        }
      },
      "TransferConfig": {
        "type": "object",
        "description": "Group of configurations related to the transfer flow.",
        "properties": {
          "from": {
            "type": "object",
            "description": "Group of configurations related to the source account.",
            "properties": {
              "require_external_authentication": {
                "type": "boolean",
                "description": "Does this org/program/account require a call to an external authentication entity? Default is `false`.",
                "example": true,
                "default": false
              },
              "rules": {
                "$ref": "#/components/schemas/Rules"
              }
            }
          },
          "to": {
            "type": "object",
            "description": "Group of configurations related to the target account.",
            "properties": {
              "require_external_authentication": {
                "type": "boolean",
                "description": "Does this org/program/account require a call to an external authentication entity? Default is `false`.",
                "example": true,
                "default": false
              },
              "rules": {
                "$ref": "#/components/schemas/Rules"
              }
            }
          }
        }
      },
      "Rules": {
        "type": "object",
        "description": "Validation rules performed in the payment methods flow.",
        "additionalProperties": {
          "$ref": "#/components/schemas/RuleConfig"
        }
      },
      "RuleConfig": {
        "type": "object",
        "description": "Configurations related to a rule.",
        "properties": {
          "denial_reasons": {
            "$ref": "#/components/schemas/DenialReasons"
          },
          "disable": {
            "type": "boolean",
            "description": "Should this rule be disabled throughout the payment methods validation flow? Default is `false`.",
            "default": false
          },
          "force": {
            "type": "boolean",
            "description": "Should this rule be forced throughout the payment methods validation flow? Default is `false`.",
            "default": false
          }
        }
      },
      "ReasonConfig": {
        "type": "object",
        "properties": {
          "denial_code": {
            "type": "string",
            "description": "Denial code to use when this denial reason is the one that caused the request to be denied.",
            "example": "DAL"
          },
          "response_code": {
            "type": "string",
            "description": "Response code to use when this denial reason is the one that caused the request to be denied.",
            "example": "57"
          },
          "custom_message": {
            "type": "string",
            "description": "Custom message to use when this denial reason is the one that caused the request to be denied."
          }
        }
      },
      "PaymentConfig": {
        "type": "object",
        "description": "Group of configurations related to the payment methods flow.",
        "properties": {
          "require_external_authentication": {
            "type": "boolean",
            "description": "Does this org/program/account require a call to an external authentication entity? Default is `false`.",
            "example": true,
            "default": false
          },
          "update_balance_after_discharge": {
            "type": "boolean",
            "description": "If set to `true`, the platform updates account balances only after the discharge process is completed. By default, this value is `false`, and the platform updates account balances during the authorization process. This field applies to credit authorizations only.",
            "example": true,
            "default": false
          },
          "rules": {
            "$ref": "#/components/schemas/Rules"
          }
        }
      },
      "GetPaymentMethodsResponse": {
        "type": "object",
        "description": "Get payment methods configuration record response",
        "properties": {
          "authorization": {
            "$ref": "#/components/schemas/AuthorizationConfig"
          },
          "payment": {
            "$ref": "#/components/schemas/PaymentConfig"
          },
          "transfer": {
            "$ref": "#/components/schemas/TransferConfig"
          }
        }
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Payment method configurations",
      "description": "Payment methods configurations endpoints."
    }
  ],
  "paths": {
    "/payment-methods-configs/v1/configs/priority-configs": {
      "get": {
        "summary": "Get configuration by hierarchy",
        "description": "Get a payment methods configuration based on the hierarchy from the most granular to the least granular (account > program > org).\n\n**Note:** This is a PCI endpoint, use the https://gw-pci.pismolabs.io environment. \n",
        "operationId": "get-config-by-priority",
        "tags": [
          "Payment method configurations"
        ],
        "parameters": [
          {
            "name": "program_id",
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "required": true,
            "description": "ID of program that the retrieved configuration is applied to. You may skip this parameter if the account ID parameter is present in the query."
          },
          {
            "name": "account_id",
            "schema": {
              "type": "integer"
            },
            "in": "query",
            "required": true,
            "description": "ID of account that the retrieved configuration is applied to. You may skip this parameter if the program ID parameter is present in the query."
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPaymentMethodsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/401Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "500": {
            "$ref": "#/components/responses/500InternalServer"
          }
        }
      }
    }
  }
}
```