{
  "openapi": "3.1.0",
  "info": {
    "title": "Brick API",
    "version": "2",
    "description": "Complete reference for Brick API endpoints, authentication, request schemas, testing examples, callbacks, and response handling across Send Money, Receive Money, Financial Insight, and workspace workflows. Use this API Reference to choose the correct endpoint, prepare required headers and payloads, test sandbox requests, and understand the production URL for each Brick integration."
  },
  "servers": [
    {
      "url": "https://sandbox.onebrick.io",
      "description": "Sandbox Brick API"
    },
    {
      "url": "https://api.onebrick.io",
      "description": "Production Brick API"
    }
  ],
  "components": {
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic",
        "description": "Use your Brick Client ID as the username and Client Secret as the password."
      },
      "sec0": {
        "type": "apiKey",
        "in": "header",
        "name": "publicAccessToken",
        "description": "Use a short-lived Brick public access token generated from the Access Token endpoint. Include the Bearer prefix when required by the endpoint.",
        "x-default": "Bearer"
      },
      "sec1": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Signature",
        "description": "B2C Subaccount request signature generated with the configured private key."
      },
      "sec2": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Timestamp",
        "description": "Timestamp used in signed B2C Subaccount requests."
      }
    }
  },
  "paths": {
    "/v2/payments/general/client/public-key": {
      "post": {
        "summary": "[B2C Client] Setup Public Key",
        "description": "Upload the public key Brick should use to encrypt B2C client credentials generated for subaccounts. Call this before creating B2C subaccounts so the returned client secret material can be handled safely by your platform. The request requires Brick authentication headers and the response confirms that the encryption key is ready for subsequent subaccount provisioning.",
        "operationId": "b2c-client-setup-public-key",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "publicKey": {
                    "type": "string",
                    "description": "File containing your public Key in .pem format. Max size 100KB.",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"data\": null,\n    \"error\": null,\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    }\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {},
                    "error": {},
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Type not supported": {
                    "value": "{\n  \"status\": 400,\n  \"error\": {\n    \"code\": \"invalid_parameters_in_request\",\n    \"message\": \"Only public key file types are supported\",\n    \"action\": \"Please uploade public key file types\",\n    \"reason\": \"File type is not match with out system\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"data\": null\n}"
                  },
                  "File upload too large": {
                    "value": "{\n  \"status\": 400,\n  \"error\": {\n    \"code\": \"file_too_large\",\n    \"message\": \"Uploaded public key file exceeds the allowed size limit\",\n    \"action\": \"Please upload an public key file less than 100KB\",\n    \"reason\": \"File size exceeds configured maximum\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Type not supported",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Only public key file types are supported"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please uploade public key file types"
                            },
                            "reason": {
                              "type": "string",
                              "example": "File type is not match with out system"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "File upload too large",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "file_too_large"
                            },
                            "message": {
                              "type": "string",
                              "example": "Uploaded public key file exceeds the allowed size limit"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please upload an public key file less than 100KB"
                            },
                            "reason": {
                              "type": "string",
                              "example": "File size exceeds configured maximum"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "500",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"status\": 500,\n  \"error\": {\n    \"code\": \"server_error\",\n    \"message\": \"Something went wrong on our side\",\n    \"action\": \"Try again later or contact support if the issue persists\",\n    \"reason\": \"Unexpected error in server process\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 500,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "server_error"
                        },
                        "message": {
                          "type": "string",
                          "example": "Something went wrong on our side"
                        },
                        "action": {
                          "type": "string",
                          "example": "Try again later or contact support if the issue persists"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Unexpected error in server process"
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "B2C Subaccount"
        ],
        "x-docs-page": "/getting-started/subaccount-management/b2c-client-setup-public-key",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": [],
            "sec1": [],
            "sec2": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/general",
        "x-brick-original-path": "/client/public-key"
      }
    },
    "/v2/payments/general/b2c/sub-accounts": {
      "post": {
        "summary": "[B2C Client] Create Subaccount",
        "description": "Create a B2C subaccount under your Brick workspace for a client, tenant, merchant, or business unit. Send the required customer and account details with the B2C authentication headers; Brick returns subaccount identifiers and encrypted credentials that can be stored in your platform. Use this endpoint when you need credential separation across end customers while keeping central operational control.",
        "operationId": "b2c-client-create-subaccount",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "subAccountCode",
                  "email",
                  "address"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The name of the business or individual consumer"
                  },
                  "subAccountCode": {
                    "type": "string",
                    "description": "A unique alphanumeric code (max. 5 characters) used to identify the subaccount"
                  },
                  "email": {
                    "type": "string",
                    "description": "Contact email address for the subaccount"
                  },
                  "address": {
                    "type": "string",
                    "description": "Business or residential address associated with the subaccount"
                  },
                  "picture": {
                    "type": "string",
                    "description": "(Optional) Logo image file (max. 2 MB) to visually represent the subaccount",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"status\": 200,\n  \"message\": \"Subaccount created successfully\",\n  \"data\": {\n    \"status\": \"approved\",\n    \"apiKey\": {\n      \"clientKey\": \"YOUR_CLIENT_ID\",\n      \"clientSecret\": \"YOUR_CLIENT_SECRET\"\n    }\n  }\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"status\": 400,\n  \"error\": {\n    \"code\": \"invalid_parameters_in_request\",\n    \"message\": \"Please use valid and active accountNumber in request query\",\n    \"action\": \"Please verify the account number in /v2/payments/bank-account-validation API\",\n    \"reason\": \"accountNumber is invalid in request body\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"data\": null\n}"
                  },
                  "Image Upload Too Large": {
                    "value": "{\n  \"status\": 400,\n  \"error\": {\n    \"code\": \"image_too_large\",\n    \"message\": \"Uploaded image exceeds the allowed size limit.\",\n    \"action\": \"Please upload an image file less than 2MB.\",\n    \"reason\": \"File size exceeds configured maximum.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}\n"
                  },
                  "Unauthorized": {
                    "value": "{\n  \"status\": 401,\n  \"error\": {\n    \"code\": \"unauthorized\",\n    \"message\": \"Authentication failed. Invalid or expired access token.\",\n    \"action\": \"Re-authenticate and retry with a valid token.\",\n    \"reason\": \"Bearer token is missing or invalid.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use valid and active accountNumber in request query"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please verify the account number in /v2/payments/bank-account-validation API"
                            },
                            "reason": {
                              "type": "string",
                              "example": "accountNumber is invalid in request body"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "Image Upload Too Large",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "image_too_large"
                            },
                            "message": {
                              "type": "string",
                              "example": "Uploaded image exceeds the allowed size limit."
                            },
                            "action": {
                              "type": "string",
                              "example": "Please upload an image file less than 2MB."
                            },
                            "reason": {
                              "type": "string",
                              "example": "File size exceeds configured maximum."
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Subaccount"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "Unauthorized",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "unauthorized"
                            },
                            "message": {
                              "type": "string",
                              "example": "Authentication failed. Invalid or expired access token."
                            },
                            "action": {
                              "type": "string",
                              "example": "Re-authenticate and retry with a valid token."
                            },
                            "reason": {
                              "type": "string",
                              "example": "Bearer token is missing or invalid."
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Subaccount"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "403",
            "content": {
              "application/json": {
                "examples": {
                  "Forbidden": {
                    "value": "{\n  \"status\": 403,\n  \"error\": {\n    \"code\": \"forbidden\",\n    \"message\": \"You are not authorized to perform this action.\",\n    \"action\": \"Ensure your account has the correct permissions (B2C role: main).\",\n    \"reason\": \"Insufficient access scope or role.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 403,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "forbidden"
                        },
                        "message": {
                          "type": "string",
                          "example": "You are not authorized to perform this action."
                        },
                        "action": {
                          "type": "string",
                          "example": "Ensure your account has the correct permissions (B2C role: main)."
                        },
                        "reason": {
                          "type": "string",
                          "example": "Insufficient access scope or role."
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Subaccount"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Subaccount Not Found": {
                    "value": "{\n  \"status\": 404,\n  \"error\": {\n    \"code\": \"not_found\",\n    \"message\": \"The requested subaccount does not exist.\",\n    \"action\": \"Verify the sub_account_code and try again.\",\n    \"reason\": \"Subaccount not found in the database.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 404,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "not_found"
                        },
                        "message": {
                          "type": "string",
                          "example": "The requested subaccount does not exist."
                        },
                        "action": {
                          "type": "string",
                          "example": "Verify the sub_account_code and try again."
                        },
                        "reason": {
                          "type": "string",
                          "example": "Subaccount not found in the database."
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Subaccount"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          },
          "409": {
            "description": "409",
            "content": {
              "application/json": {
                "examples": {
                  "Duplicate Subaccount Code": {
                    "value": "{\n  \"status\": 409,\n  \"error\": {\n    \"code\": \"duplicate_code\",\n    \"message\": \"Subaccount code is already registered.\",\n    \"action\": \"Use a unique sub_account_code.\",\n    \"reason\": \"Conflict with existing subaccount record.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 409,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "duplicate_code"
                        },
                        "message": {
                          "type": "string",
                          "example": "Subaccount code is already registered."
                        },
                        "action": {
                          "type": "string",
                          "example": "Use a unique sub_account_code."
                        },
                        "reason": {
                          "type": "string",
                          "example": "Conflict with existing subaccount record."
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Subaccount"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          },
          "429": {
            "description": "429",
            "content": {
              "application/json": {
                "examples": {
                  "Rate Limit Exceeded": {
                    "value": "{\n  \"status\": 429,\n  \"error\": {\n    \"code\": \"rate_limit_exceeded\",\n    \"message\": \"Too many requests. Please slow down.\",\n    \"action\": \"Retry after 60 seconds or contact support to increase limit.\",\n    \"reason\": \"Request limit exceeded for client.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 429,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "rate_limit_exceeded"
                        },
                        "message": {
                          "type": "string",
                          "example": "Too many requests. Please slow down."
                        },
                        "action": {
                          "type": "string",
                          "example": "Retry after 60 seconds or contact support to increase limit."
                        },
                        "reason": {
                          "type": "string",
                          "example": "Request limit exceeded for client."
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Subaccount"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          },
          "500": {
            "description": "500",
            "content": {
              "application/json": {
                "examples": {
                  "Internal Server Error": {
                    "value": "{\n  \"status\": 500,\n  \"error\": {\n    \"code\": \"server_error\",\n    \"message\": \"Something went wrong on our side.\",\n    \"action\": \"Try again later or contact support if the issue persists.\",\n    \"reason\": \"Unexpected error in server process.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 500,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "server_error"
                        },
                        "message": {
                          "type": "string",
                          "example": "Something went wrong on our side."
                        },
                        "action": {
                          "type": "string",
                          "example": "Try again later or contact support if the issue persists."
                        },
                        "reason": {
                          "type": "string",
                          "example": "Unexpected error in server process."
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Subaccount"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "B2C Subaccount"
        ],
        "x-docs-page": "/getting-started/subaccount-management/b2c-client-create-subaccount",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": [],
            "sec1": [],
            "sec2": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/general",
        "x-brick-original-path": "/b2c/sub-accounts"
      }
    },
    "/v2/payments/general/b2c/sub-accounts/{subAccountCode}/regenerate-api-key": {
      "post": {
        "summary": "[B2C Client] Regenerate API Key",
        "description": "Regenerate the API key pair for an existing B2C subaccount when credentials need to be rotated, compromised, or reissued. The previous key pair is invalidated after regeneration, so update downstream services before switching traffic. Only authorized B2C owner roles should call this endpoint, and the response should be treated as sensitive credential material.",
        "operationId": "b2c-client-regenerate-api-key",
        "parameters": [
          {
            "name": "subAccountCode",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"status\": 200,\n  \"message\": \"API keys regenerated successfully\",\n  \"data\": {\n    \"apiKey\": {\n      \"clientKey\": \"encrypted_new_client_key_xxx\",\n      \"clientSecret\": \"encrypted_new_client_secret_xxx\"\n    }\n  }\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "message": {
                      "type": "string",
                      "example": "API keys regenerated successfully"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "apiKey": {
                          "type": "object",
                          "properties": {
                            "clientKey": {
                              "type": "string",
                              "example": "encrypted_new_client_key_xxx"
                            },
                            "clientSecret": {
                              "type": "string",
                              "example": "encrypted_new_client_secret_xxx"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"status\": 400,\n  \"error\": {\n    \"code\": \"invalid_input\",\n    \"message\": \"Request body is invalid or incomplete.\",\n    \"action\": \"Check required fields and data types in the request body.\",\n    \"reason\": \"Missing or malformed parameters.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  },
                  "Image Upload Too Large": {
                    "value": "{\n  \"status\": 400,\n  \"error\": {\n    \"code\": \"image_too_large\",\n    \"message\": \"Uploaded image exceeds the allowed size limit.\",\n    \"action\": \"Please upload an image file less than 2MB.\",\n    \"reason\": \"File size exceeds configured maximum.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_input"
                            },
                            "message": {
                              "type": "string",
                              "example": "Request body is invalid or incomplete."
                            },
                            "action": {
                              "type": "string",
                              "example": "Check required fields and data types in the request body."
                            },
                            "reason": {
                              "type": "string",
                              "example": "Missing or malformed parameters."
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Subaccount"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "Image Upload Too Large",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "image_too_large"
                            },
                            "message": {
                              "type": "string",
                              "example": "Uploaded image exceeds the allowed size limit."
                            },
                            "action": {
                              "type": "string",
                              "example": "Please upload an image file less than 2MB."
                            },
                            "reason": {
                              "type": "string",
                              "example": "File size exceeds configured maximum."
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Subaccount"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "Unauthorized": {
                    "value": "{\n  \"status\": 401,\n  \"error\": {\n    \"code\": \"unauthorized\",\n    \"message\": \"Authentication failed. Invalid or expired access token.\",\n    \"action\": \"Re-authenticate and retry with a valid token.\",\n    \"reason\": \"Bearer token is missing or invalid.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 401,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "unauthorized"
                        },
                        "message": {
                          "type": "string",
                          "example": "Authentication failed. Invalid or expired access token."
                        },
                        "action": {
                          "type": "string",
                          "example": "Re-authenticate and retry with a valid token."
                        },
                        "reason": {
                          "type": "string",
                          "example": "Bearer token is missing or invalid."
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Subaccount"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          },
          "403": {
            "description": "403",
            "content": {
              "application/json": {
                "examples": {
                  "Forbidden": {
                    "value": "{\n  \"status\": 403,\n  \"error\": {\n    \"code\": \"forbidden\",\n    \"message\": \"You are not authorized to perform this action.\",\n    \"action\": \"Ensure your account has the correct permissions (B2C role: main).\",\n    \"reason\": \"Insufficient access scope or role.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 403,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "forbidden"
                        },
                        "message": {
                          "type": "string",
                          "example": "You are not authorized to perform this action."
                        },
                        "action": {
                          "type": "string",
                          "example": "Ensure your account has the correct permissions (B2C role: main)."
                        },
                        "reason": {
                          "type": "string",
                          "example": "Insufficient access scope or role."
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Subaccount"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Subaccount Not Found": {
                    "value": "{\n  \"status\": 404,\n  \"error\": {\n    \"code\": \"not_found\",\n    \"message\": \"The requested subaccount does not exist.\",\n    \"action\": \"Verify the sub_account_code and try again.\",\n    \"reason\": \"Subaccount not found in the database.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 404,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "not_found"
                        },
                        "message": {
                          "type": "string",
                          "example": "The requested subaccount does not exist."
                        },
                        "action": {
                          "type": "string",
                          "example": "Verify the sub_account_code and try again."
                        },
                        "reason": {
                          "type": "string",
                          "example": "Subaccount not found in the database."
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Subaccount"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          },
          "409": {
            "description": "409",
            "content": {
              "application/json": {
                "examples": {
                  "Duplicate Subaccount Code": {
                    "value": "{\n  \"status\": 409,\n  \"error\": {\n    \"code\": \"duplicate_code\",\n    \"message\": \"Subaccount code is already registered.\",\n    \"action\": \"Use a unique sub_account_code.\",\n    \"reason\": \"Conflict with existing subaccount record.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 409,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "duplicate_code"
                        },
                        "message": {
                          "type": "string",
                          "example": "Subaccount code is already registered."
                        },
                        "action": {
                          "type": "string",
                          "example": "Use a unique sub_account_code."
                        },
                        "reason": {
                          "type": "string",
                          "example": "Conflict with existing subaccount record."
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Subaccount"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          },
          "429": {
            "description": "429",
            "content": {
              "application/json": {
                "examples": {
                  "Rate Limit Exceeded": {
                    "value": "{\n  \"status\": 429,\n  \"error\": {\n    \"code\": \"rate_limit_exceeded\",\n    \"message\": \"Too many requests. Please slow down.\",\n    \"action\": \"Retry after 60 seconds or contact support to increase limit.\",\n    \"reason\": \"Request limit exceeded for client.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 429,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "rate_limit_exceeded"
                        },
                        "message": {
                          "type": "string",
                          "example": "Too many requests. Please slow down."
                        },
                        "action": {
                          "type": "string",
                          "example": "Retry after 60 seconds or contact support to increase limit."
                        },
                        "reason": {
                          "type": "string",
                          "example": "Request limit exceeded for client."
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Subaccount"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          },
          "500": {
            "description": "500",
            "content": {
              "application/json": {
                "examples": {
                  "Internal Server Error": {
                    "value": "{\n  \"status\": 500,\n  \"error\": {\n    \"code\": \"server_error\",\n    \"message\": \"Something went wrong on our side.\",\n    \"action\": \"Try again later or contact support if the issue persists.\",\n    \"reason\": \"Unexpected error in server process.\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Subaccount\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 500,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "server_error"
                        },
                        "message": {
                          "type": "string",
                          "example": "Something went wrong on our side."
                        },
                        "action": {
                          "type": "string",
                          "example": "Try again later or contact support if the issue persists."
                        },
                        "reason": {
                          "type": "string",
                          "example": "Unexpected error in server process."
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Subaccount"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "B2C Subaccount"
        ],
        "x-docs-page": "/getting-started/subaccount-management/b2c-client-regenerate-api-key",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": [],
            "sec1": [],
            "sec2": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/general",
        "x-brick-original-path": "/b2c/sub-accounts/{subAccountCode}/regenerate-api-key"
      }
    },
    "/v2/payments/auth/token": {
      "get": {
        "summary": "Access Token",
        "description": "Generate the short-lived public access token used by most Brick API requests. Authenticate with your Brick Client ID and Client Secret, then pass the returned token in the publicAccessToken header for payment, payout, QRIS, Virtual Account, Checkout, OCR, and validation calls. Refresh the token before it expires and never expose long-lived client credentials in frontend code.",
        "operationId": "generate-public-access-token-jwt-token",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"error\": null,\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": {\n        \"message\": \"Access token is valid for 5 minutes and can use one time only\",\n        \"accessToken\": \"YOUR_ACCESS_TOKEN\",\n        \"issuedAt\": \"2022-07-21T16:26:08.782387\",\n        \"expiresAt\": \"2022-07-21T16:31:08.782387\"\n    }\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "error": {},
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "Access token is valid for 5 minutes and can use one time only"
                        },
                        "accessToken": {
                          "type": "string",
                          "example": "YOUR_ACCESS_TOKEN"
                        },
                        "issuedAt": {
                          "type": "string",
                          "example": "2022-07-21T16:26:08.782387"
                        },
                        "expiresAt": {
                          "type": "string",
                          "example": "2022-07-21T16:31:08.782387"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"missing_parameters_in_headers\",\n        \"message\": \"Please use the APIs with Username in headers\",\n        \"action\": \"Please get correct username from Brick dashboard or connect with Brick sales team\",\n        \"reason\": \"Username is missing in headers\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"AUTH\"\n    },\n    \"data\": null\n}"
                  },
                  "user not exist": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"user_not_exist\",\n        \"message\": \"Please use correct credential\",\n        \"action\": \"Please contact Brick sales team\",\n        \"reason\": \"user is not exist\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "expired token": {
                    "value": "{\n  \"status\": 401,\n  \"error\": {\n    \"code\": \"expired_parameters_in_headers\",\n    \"message\": \"Please use live Public_access_token in headers\",\n    \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n    \"reason\": \"Public_access_token is expired\"\n  },\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"data\": null\n}"
                  },
                  " re-used token": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"token_used_in_headers\",\n        \"message\": \"Please use live Public_access_token in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"Public_access_token is used\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "missing_parameters_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use the APIs with Username in headers"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please get correct username from Brick dashboard or connect with Brick sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Username is missing in headers"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "AUTH"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "user not exist",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "user_not_exist"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use correct credential"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please contact Brick sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "user is not exist"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "expired token",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "expired_parameters_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use live Public_access_token in headers"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Public_access_token is expired"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": " re-used token",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "token_used_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use live Public_access_token in headers"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Public_access_token is used"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Authentication"
        ],
        "x-docs-page": "/getting-started/generate-public-access-token-jwt-token",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments",
        "x-brick-original-path": "/auth/token"
      }
    },
    "/v2/payments/gs/top-up/bank/list": {
      "get": {
        "summary": "Get List of Available Top Up Options",
        "description": "Retrieve the available bank transfer options for topping up your Brick balance. Use this endpoint before funding Send Money workflows so finance or operations users know which destination bank, account number, and instructions to use. The response can be shown in an internal dashboard or used to guide balance funding before payout batches.",
        "operationId": "get-list-of-available-top-up-options",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "description": "Your company's email account registered during registration process",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"vaListData\": [\n            {\n                \"bankName\": \"Bank BNI\",\n                \"bankShortCode\": \"BNI\",\n                \"vaNumber\": \"98819xxxxx\"\n            },\n            {\n                \"bankName\": \"Bank BRI\",\n                \"bankShortCode\": \"BRI\",\n                \"vaNumber\": \"1005xxxxx\"\n            },\n            {\n                \"bankName\": \"Bank CIMB Niaga\",\n                \"bankShortCode\": \"CIMB_NIAGA\",\n                \"vaNumber\": \"2309xxxxx\"\n            },\n            {\n                \"bankName\": \"Bank Mandiri\",\n                \"bankShortCode\": \"MANDIRI\",\n                \"vaNumber\": \"8804xxxxx\"\n            }\n        ]\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "vaListData": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "bankName": {
                                "type": "string",
                                "example": "Bank BNI"
                              },
                              "bankShortCode": {
                                "type": "string",
                                "example": "BNI"
                              },
                              "vaNumber": {
                                "type": "string",
                                "example": "98819xxxxx"
                              }
                            }
                          }
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Please use valid publicAccessToken in headers\",\n        \"action\": \"Please generate valid public access token\",\n        \"reason\": \"Invalid publicAccessToken in headers\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 400,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "invalid_parameters_in_headers"
                        },
                        "message": {
                          "type": "string",
                          "example": "Please use valid publicAccessToken in headers"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please generate valid public access token"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Invalid publicAccessToken in headers"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Topup"
        ],
        "x-docs-page": "/topup-balance/available-top-up-options",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/top-up/bank/list"
      }
    },
    "/v2/payments/gs/get-top-up-history": {
      "get": {
        "summary": "Get Topup History",
        "description": "Retrieve historical top-up records for a selected period so your team can reconcile balance funding activity. Use the response to match bank transfers, operational funding events, and Brick balance movements. This endpoint is useful for finance dashboards, audit checks, and support investigations when disbursement funds do not match expectations.",
        "operationId": "get-top-up-history",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "If type set as topup will filter only topup transactions",
            "schema": {
              "type": "string",
              "default": "topup"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"content\": [\n            {\n                \"topUpId\": \"1826064\",\n                \"refNumber\": \"18485-a99f6ea8-3970-4782-87d9-e9ac1d9f4182\",\n                \"bank\": \"BRI\",\n                \"date\": \"2026-01-13T14:11:57.000+07:00\",\n                \"amount\": 10000,\n                \"transactionType\": \"Top-up\",\n                \"accountNo\": \"1392400000000001\",\n                \"accountDisplayName\": \"Brick PT QamiAwesome Ma\"\n            },\n            {\n                \"topUpId\": \"1824998\",\n                \"refNumber\": \"18485-a99f6ea8-3970-4782-87d9-e9ac1d9f4182\",\n                \"bank\": \"BRI\",\n                \"date\": \"2026-01-09T20:44:33.000+07:00\",\n                \"amount\": 29999,\n                \"transactionType\": \"Top-up\",\n                \"accountNo\": \"1392400000000001\",\n                \"accountDisplayName\": \"Brick PT QamiAwesome Ma\"\n            },\n            {\n                \"topUpId\": \"1824993\",\n                \"refNumber\": \"18485-a99f6ea8-3970-4782-87d9-e9ac1d9f4182\",\n                \"bank\": \"BRI\",\n                \"date\": \"2026-01-09T19:54:38.000+07:00\",\n                \"amount\": 29999,\n                \"transactionType\": \"Top-up\",\n                \"accountNo\": \"1392400000000001\",\n                \"accountDisplayName\": \"Brick PT QamiAwesome Ma\"\n            },\n            {\n                \"topUpId\": \"106539\",\n                \"refNumber\": \"PT 06012026140036\",\n                \"bank\": \"BCA\",\n                \"date\": \"2026-01-06T14:00:36.000+07:00\",\n                \"amount\": 10957,\n                \"transactionType\": \"Top-up\",\n                \"accountNo\": \"\",\n                \"accountDisplayName\": \"\"\n            }\n        ],\n        \"pageCount\": 1,\n        \"pageIndex\": 0,\n        \"pageSize\": 10,\n        \"perPage\": 10,\n        \"totalElements\": 4\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "content": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "topUpId": {
                                "type": "string",
                                "example": "1826064"
                              },
                              "refNumber": {
                                "type": "string",
                                "example": "18485-a99f6ea8-3970-4782-87d9-e9ac1d9f4182"
                              },
                              "bank": {
                                "type": "string",
                                "example": "BRI"
                              },
                              "date": {
                                "type": "string",
                                "example": "2026-01-13T14:11:57.000+07:00"
                              },
                              "amount": {
                                "type": "integer",
                                "example": 10000,
                                "default": 0
                              },
                              "transactionType": {
                                "type": "string",
                                "example": "Top-up"
                              },
                              "accountNo": {
                                "type": "string",
                                "example": "1392400000000001"
                              },
                              "accountDisplayName": {
                                "type": "string",
                                "example": "Brick PT QamiAwesome Ma"
                              }
                            }
                          }
                        },
                        "pageCount": {
                          "type": "integer",
                          "example": 1,
                          "default": 0
                        },
                        "pageIndex": {
                          "type": "integer",
                          "example": 0,
                          "default": 0
                        },
                        "pageSize": {
                          "type": "integer",
                          "example": 10,
                          "default": 0
                        },
                        "perPage": {
                          "type": "integer",
                          "example": 10,
                          "default": 0
                        },
                        "totalElements": {
                          "type": "integer",
                          "example": 4,
                          "default": 0
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "invalid token": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Please use valid Public_access_token in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"Invalid public_access_token in headers\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 401,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "invalid_parameters_in_headers"
                        },
                        "message": {
                          "type": "string",
                          "example": "Please use valid Public_access_token in headers"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Invalid public_access_token in headers"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Topup"
        ],
        "x-docs-page": "/topup-balance/topup-history",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/get-top-up-history"
      }
    },
    "/v2/payments/gs/balance": {
      "get": {
        "summary": "Get Balance API",
        "description": "Check the latest available Brick account balance before creating payouts or running scheduled disbursement jobs. Use this endpoint as a guardrail to prevent insufficient-fund failures and to show current operational funds in internal tools. The response should be reconciled with top-up history and ledger records when investigating balance changes.",
        "operationId": "get-balance-api",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"status\": 200,\n  \"data\": {\n    \"balance\": {\n      \"usableBalance\": 10099380255,\n      \"pendingBalance\": 1000000,\n      \"totalBalance\": 10100380255\n    },\n    \"sameDaySettlement\": {\n      \"isActive\": true,\n      \"earlySettlementBalanceQuota\": 500000\n    }\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "balance": {
                          "type": "object",
                          "properties": {
                            "usableBalance": {
                              "type": "integer",
                              "example": 10099380255,
                              "default": 0
                            },
                            "pendingBalance": {
                              "type": "integer",
                              "example": 1000000,
                              "default": 0
                            },
                            "totalBalance": {
                              "type": "integer",
                              "example": 10100380255,
                              "default": 0
                            }
                          }
                        },
                        "sameDaySettlement": {
                          "type": "object",
                          "properties": {
                            "isActive": {
                              "type": "boolean",
                              "example": true,
                              "default": true
                            },
                            "earlySettlementBalanceQuota": {
                              "type": "integer",
                              "example": 500000,
                              "default": 0
                            }
                          }
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "invalid token": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Please use valid Public_access_token in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"Invalid public_access_token in headers\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "token is expired": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"expired_parameters_in_headers\",\n        \"message\": \"Please use live publicAccessToken in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"publicAccessToken is expired\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "invalid token",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use valid Public_access_token in headers"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Invalid public_access_token in headers"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "token is expired",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "expired_parameters_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use live publicAccessToken in headers"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "publicAccessToken is expired"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Balance"
        ],
        "x-docs-page": "/topup-balance/balance-api",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/balance"
      }
    },
    "/v2/payments/gs/bank-account-validation": {
      "get": {
        "summary": "Account Verification API",
        "description": "Verify bank account details before saving a beneficiary, onboarding a user, or initiating a payout. Use this endpoint as a Financial Insight or risk-control check to reduce typo-related failures and suspicious account usage. The response helps your system decide whether account data is valid enough to continue the workflow.",
        "operationId": "account-verification-api",
        "parameters": [
          {
            "name": "accountNumber",
            "in": "query",
            "description": "The bank account number to be verified.",
            "required": true,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "bankShortCode",
            "in": "query",
            "description": "The bank short code to validate. Collection example: MANDIRI.",
            "required": true,
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 Success",
            "content": {
              "application/json": {
                "examples": {
                  "Success": {
                    "value": "{\n  \"status\": 200,\n  \"data\": {\n    \"message\": \"We are successfully able to verify the account\",\n    \"bankShortCode\": \"DANA\",\n    \"accountNo\": \"08123412341234\",\n    \"accountName\": \"beneficiary holder name\",\n    \"activityId\": \"86569bbf0b017afb59cb71765eaec280\"\n  },\n  \"error\": null,\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  }\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Success",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 200
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "message": {
                              "type": "string",
                              "example": "We are successfully able to verify the account"
                            },
                            "bankShortCode": {
                              "type": "string",
                              "example": "DANA"
                            },
                            "accountNo": {
                              "type": "string",
                              "example": "08123412341234"
                            },
                            "accountName": {
                              "type": "string",
                              "example": "beneficiary holder name"
                            },
                            "activityId": {
                              "type": "string",
                              "example": "86569bbf0b017afb59cb71765eaec280"
                            }
                          }
                        },
                        "error": {
                          "nullable": true
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        }
                      }
                    },
                    {
                      "title": "Error",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400
                        },
                        "data": {
                          "nullable": true
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_format"
                            },
                            "message": {
                              "type": "string"
                            },
                            "action": {
                              "type": "string"
                            },
                            "reason": {
                              "type": "string"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "400 Invalid format",
            "content": {
              "application/json": {
                "examples": {
                  "Invalid format": {
                    "value": "{\n  \"status\": 400,\n  \"data\": null,\n  \"error\": {\n    \"code\": \"invalid_format\",\n    \"message\": \"The bank account validation request could not be processed because one or more submitted fields are missing, invalid, or not in the required format.\",\n    \"action\": \"Please review the request parameters and ensure the account number, bank code, and other required fields follow the required format before submitting again.\",\n    \"reason\": \"The request contains invalid, incomplete, or improperly formatted information required to process the bank account validation.\"\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  }\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Success",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 200
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "message": {
                              "type": "string",
                              "example": "We are successfully able to verify the account"
                            },
                            "bankShortCode": {
                              "type": "string",
                              "example": "DANA"
                            },
                            "accountNo": {
                              "type": "string",
                              "example": "08123412341234"
                            },
                            "accountName": {
                              "type": "string",
                              "example": "beneficiary holder name"
                            },
                            "activityId": {
                              "type": "string",
                              "example": "86569bbf0b017afb59cb71765eaec280"
                            }
                          }
                        },
                        "error": {
                          "nullable": true
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        }
                      }
                    },
                    {
                      "title": "Error",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400
                        },
                        "data": {
                          "nullable": true
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_format"
                            },
                            "message": {
                              "type": "string"
                            },
                            "action": {
                              "type": "string"
                            },
                            "reason": {
                              "type": "string"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404 Account not found",
            "content": {
              "application/json": {
                "examples": {
                  "Account not found": {
                    "value": "{\n  \"status\": 404,\n  \"data\": null,\n  \"error\": {\n    \"code\": \"account_not_found\",\n    \"message\": \"We were unable to verify the submitted bank account details. The account number, account holder name, or bank information may be incorrect or not available for validation.\",\n    \"action\": \"Please review the account number, account holder name, and bank details, then submit the request again with the correct information.\",\n    \"reason\": \"The provider could not find a matching bank account or account holder based on the submitted validation details.\"\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  }\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Success",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 200
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "message": {
                              "type": "string",
                              "example": "We are successfully able to verify the account"
                            },
                            "bankShortCode": {
                              "type": "string",
                              "example": "DANA"
                            },
                            "accountNo": {
                              "type": "string",
                              "example": "08123412341234"
                            },
                            "accountName": {
                              "type": "string",
                              "example": "beneficiary holder name"
                            },
                            "activityId": {
                              "type": "string",
                              "example": "86569bbf0b017afb59cb71765eaec280"
                            }
                          }
                        },
                        "error": {
                          "nullable": true
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        }
                      }
                    },
                    {
                      "title": "Error",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400
                        },
                        "data": {
                          "nullable": true
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_format"
                            },
                            "message": {
                              "type": "string"
                            },
                            "action": {
                              "type": "string"
                            },
                            "reason": {
                              "type": "string"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "500 Internal server error",
            "content": {
              "application/json": {
                "examples": {
                  "Internal server error": {
                    "value": "{\n  \"status\": 500,\n  \"data\": null,\n  \"error\": {\n    \"code\": \"INTERNAL_SERVER_ERROR\",\n    \"message\": \"Bank account validation could not be completed at this time due to a temporary processing issue from the downstream bank network, or internal validation service.\",\n    \"action\": \"Please retry the request later. If the issue persists, please contact support with the transaction reference for further assistance.\",\n    \"reason\": \"The validation request could not be completed because a temporary system or bank network error occurred during processing.\"\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  }\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Success",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 200
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "message": {
                              "type": "string",
                              "example": "We are successfully able to verify the account"
                            },
                            "bankShortCode": {
                              "type": "string",
                              "example": "DANA"
                            },
                            "accountNo": {
                              "type": "string",
                              "example": "08123412341234"
                            },
                            "accountName": {
                              "type": "string",
                              "example": "beneficiary holder name"
                            },
                            "activityId": {
                              "type": "string",
                              "example": "86569bbf0b017afb59cb71765eaec280"
                            }
                          }
                        },
                        "error": {
                          "nullable": true
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        }
                      }
                    },
                    {
                      "title": "Error",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400
                        },
                        "data": {
                          "nullable": true
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_format"
                            },
                            "message": {
                              "type": "string"
                            },
                            "action": {
                              "type": "string"
                            },
                            "reason": {
                              "type": "string"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "503": {
            "description": "503 Unknown behaviour",
            "content": {
              "application/json": {
                "examples": {
                  "Unknown behaviour": {
                    "value": "{\n  \"status\": 503,\n  \"data\": null,\n  \"error\": {\n    \"code\": \"UNKNOWN_BEHAVIOUR\",\n    \"message\": \"Bank account validation could not be completed because the bank network returned an unexpected response that could not be met with a standard validation result.\",\n    \"action\": \"Please retry the request later. If the issue persists, please contact support with the transaction reference for further investigation.\",\n    \"reason\": \"The provider returned an unmapped, unexpected, or unsupported response that could not be classified under the standard validation outcome.\"\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  }\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Success",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 200
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "message": {
                              "type": "string",
                              "example": "We are successfully able to verify the account"
                            },
                            "bankShortCode": {
                              "type": "string",
                              "example": "DANA"
                            },
                            "accountNo": {
                              "type": "string",
                              "example": "08123412341234"
                            },
                            "accountName": {
                              "type": "string",
                              "example": "beneficiary holder name"
                            },
                            "activityId": {
                              "type": "string",
                              "example": "86569bbf0b017afb59cb71765eaec280"
                            }
                          }
                        },
                        "error": {
                          "nullable": true
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        }
                      }
                    },
                    {
                      "title": "Error",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400
                        },
                        "data": {
                          "nullable": true
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_format"
                            },
                            "message": {
                              "type": "string"
                            },
                            "action": {
                              "type": "string"
                            },
                            "reason": {
                              "type": "string"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Bank Account Validation"
        ],
        "x-docs-page": "/brickdata/bank-account-validation/account-verification-api",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/bank-account-validation"
      }
    },
    "/v2/payments/gs/bifast-disbursements": {
      "post": {
        "summary": "BIFAST Disbursement API",
        "description": "Create a BI-FAST disbursement for near real-time bank payouts through Brick Send Money. Provide amount, reference ID, recipient bank details, sender information, and required authentication headers; Brick returns a disbursement record and processes the transfer asynchronously. Use callbacks and status inquiry endpoints to reconcile final payout state after submission.",
        "operationId": "disbursement-bifast",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "amount",
                  "referenceId",
                  "description",
                  "disbursementMethod",
                  "sender"
                ],
                "properties": {
                  "amount": {
                    "type": "integer",
                    "description": "Amount that you would like to send",
                    "default": 10000,
                    "format": "int32"
                  },
                  "referenceId": {
                    "type": "string",
                    "description": "A unique reference ID as a unique identifier",
                    "default": "test-1"
                  },
                  "description": {
                    "type": "string",
                    "description": "An arbitrary string attached to the object. Often useful for displaying to users what the transaction was for. Description length limit is 1000 chars.",
                    "default": "test-disbursement-1"
                  },
                  "disbursementMethod": {
                    "type": "object",
                    "required": [
                      "type",
                      "bankAccountNo",
                      "bankShortCode",
                      "bankAccountHolderName"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "default": "bank_transfer"
                      },
                      "bankAccountNo": {
                        "type": "string",
                        "default": "010800041187"
                      },
                      "bankShortCode": {
                        "type": "string",
                        "default": "BCA"
                      },
                      "bankAccountHolderName": {
                        "type": "string",
                        "default": "JOHN CENA"
                      }
                    }
                  },
                  "sender": {
                    "type": "object",
                    "required": [
                      "name",
                      "identityType",
                      "identityNumber",
                      "countryCode",
                      "provinceCode",
                      "cityCode",
                      "jobCode",
                      "address",
                      "placeOfBirth",
                      "dateOfBirth"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "Name of the user that transfer",
                        "default": "Jaya Teguh"
                      },
                      "identityType": {
                        "type": "string",
                        "description": "Allowed Value only KTP/SIM/KITAS/NPWP",
                        "default": "KTP"
                      },
                      "identityNumber": {
                        "type": "string",
                        "description": "Identity Number of the User",
                        "default": "3276022410110004"
                      },
                      "countryCode": {
                        "type": "string",
                        "description": "Two-letter country code for the sender",
                        "default": "ID"
                      },
                      "provinceCode": {
                        "type": "string",
                        "description": "Two-letter province code for the sender",
                        "default": "35"
                      },
                      "cityCode": {
                        "type": "string",
                        "description": "Four-letter city code for the sender",
                        "default": "1226"
                      },
                      "jobCode": {
                        "type": "string",
                        "description": "Four-letter job code for the sender",
                        "default": "89"
                      },
                      "address": {
                        "type": "string",
                        "description": "Address of the sender",
                        "default": "Tulodong Bawah No 4"
                      },
                      "placeOfBirth": {
                        "type": "string",
                        "description": "Place of Birth sender",
                        "default": "Jakarta"
                      },
                      "dateOfBirth": {
                        "type": "string",
                        "default": "1999-10-24",
                        "format": "date"
                      }
                    }
                  }
                }
              },
              "examples": {
                "Request Example": {
                  "value": {
                    "amount": 50000,
                    "referenceId": "demo-{{var}}",
                    "description": "test-l",
                    "disbursementMethod": {
                      "type": "bank_transfer",
                      "bankAccountNo": "000123456789",
                      "bankShortCode": "PERMATA",
                      "bankAccountHolderName": "Example Customer"
                    },
                    "sender": {
                      "name": "Example Customer",
                      "identityType": "KTP",
                      "identityNumber": "000123456789",
                      "countryCode": "ID",
                      "provinceCode": "75",
                      "cityCode": "3205",
                      "jobCode": "3",
                      "address": "Example Address",
                      "placeOfBirth": "Bali",
                      "dateOfBirth": "1854-12-30"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"status\": 200,\n  \"message\": \"We have received your request and are processing it, please check your callback URL for transaction status\",\n  \"id\": \"example-disbursement-id\",\n  \"type\": \"disbursement\",\n  \"attributes\": {\n    \"referenceId\": \"reference-id-from-your-system\",\n    \"description\": \"reference-id-from-your-system\",\n    \"amount\": \"10000\",\n    \"feeAmount\": \"600\",\n    \"status\": \"processing\",\n    \"settlementStatus\": \"null\",\n    \"createdAt\": \"2022-07-21T13:49:39.752+07:00\",\n    \"disbursementMethod\": {\n      \"type\": \"bank_transfer\",\n      \"bankAccountNo\": \"000123456789\",\n      \"bankShortCode\": \"BCA\",\n      \"bankAccountHolderName\": \"Example Customer\"\n    },\n    \"sender\": {\n      \"name\": \"Example Customer\",\n      \"identityType\": \"KTP\",\n      \"identityNumber\": \"000123456789\",\n      \"countryCode\": \"ID\",\n      \"provinceCode\": \"35\",\n      \"cityCode\": \"1226\",\n      \"jobCode\": \"89\",\n      \"address\": \"Example Address\",\n      \"placeOfBirth\": \"Jakarta\",\n      \"dateOfBirth\": \"1998-04-23\"\n    }\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "message": {
                      "type": "string",
                      "example": "We have received your request and are processing it, please check your callback URL for transaction status"
                    },
                    "id": {
                      "type": "string",
                      "example": "asdasd123123asdasdasd"
                    },
                    "type": {
                      "type": "string",
                      "example": "disbursement"
                    },
                    "attributes": {
                      "type": "object",
                      "properties": {
                        "referenceId": {
                          "type": "string",
                          "example": "test-disbursement-1"
                        },
                        "description": {
                          "type": "string",
                          "example": "test-disbursement-1"
                        },
                        "amount": {
                          "type": "string",
                          "example": "10000"
                        },
                        "feeAmount": {
                          "type": "string",
                          "example": "600"
                        },
                        "status": {
                          "type": "string",
                          "example": "processing"
                        },
                        "settlementStatus": {
                          "type": "string",
                          "example": "null"
                        },
                        "createdAt": {
                          "type": "string",
                          "example": "2022-07-21T13:49:39.752+07:00"
                        },
                        "disbursementMethod": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "example": "bank_transfer"
                            },
                            "bankAccountNo": {
                              "type": "string",
                              "example": "000123456789"
                            },
                            "bankShortCode": {
                              "type": "string",
                              "example": "BCA"
                            },
                            "bankAccountHolderName": {
                              "type": "string",
                              "example": "Example Customer"
                            }
                          }
                        },
                        "sender": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "example": "Example Customer"
                            },
                            "identityType": {
                              "type": "string",
                              "example": "KTP"
                            },
                            "identityNumber": {
                              "type": "string",
                              "example": "000123456789"
                            },
                            "countryCode": {
                              "type": "string",
                              "example": "ID"
                            },
                            "provinceCode": {
                              "type": "string",
                              "example": "35"
                            },
                            "cityCode": {
                              "type": "string",
                              "example": "1226"
                            },
                            "jobCode": {
                              "type": "string",
                              "example": "89"
                            },
                            "address": {
                              "type": "string",
                              "example": "Example Address"
                            },
                            "placeOfBirth": {
                              "type": "string",
                              "example": "Jakarta"
                            },
                            "dateOfBirth": {
                              "type": "string",
                              "example": "1998-04-23"
                            }
                          }
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Invalid transfer amount": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please use amount more than minimum transfer limit, ie:10.000\",\n        \"action\": \"Please make sure the amount you requested is in the range of Rp 10.000 to Rp 100.000.000\",\n        \"reason\": \"Your amount of transfer is below our minimum transfer amount\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "bankShortCode invalid": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please use valid bankShortCode in the request query\",\n        \"action\": \"Please revalidate your bank short code https://docs.onebrick.io/brickfast-disbursement/api/list-of-bank-coverage\",\n        \"reason\": \"bankShortCode is not valid in the request query\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "callback not available": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"session_available_in_other_device\",\n        \"message\": \"Callback URL is not available\",\n        \"action\": \"Please add the callback URL from dashboard or contact contact sales team\",\n        \"reason\": \"This is Async API, Final response will be sended over callback URL\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "referenceId already used": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please make sure your External key (reference id) has never been used before\",\n        \"action\": \"Please make sure to always use unique reference ID in the parameter\",\n        \"reason\": \"Your external id (referenceId) has already been taken\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Invalid transfer amount",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use amount more than minimum transfer limit, ie:10.000"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please make sure the amount you requested is in the range of Rp 10.000 to Rp 100.000.000"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Your amount of transfer is below our minimum transfer amount"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "bankShortCode invalid",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use valid bankShortCode in the request query"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please revalidate your bank short code https://docs.onebrick.io/brickfast-disbursement/api/list-of-bank-coverage"
                            },
                            "reason": {
                              "type": "string",
                              "example": "bankShortCode is not valid in the request query"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "callback not available",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "session_available_in_other_device"
                            },
                            "message": {
                              "type": "string",
                              "example": "Callback URL is not available"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please add the callback URL from dashboard or contact contact sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "This is Async API, Final response will be sended over callback URL"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "referenceId already used",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please make sure your External key (reference id) has never been used before"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please make sure to always use unique reference ID in the parameter"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Your external id (referenceId) has already been taken"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "Invalid token": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Please use valid Public_access_token in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"Invalid public_access_token in headers\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "insufficient balance": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please make sure you have sufficient fund to process this transaction\",\n        \"action\": \"Please do the top up to proceed this transactions\",\n        \"reason\": \"Your Account has insufficient funds to process this transaction\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Invalid token",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use valid Public_access_token in headers"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Invalid public_access_token in headers"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "insufficient balance",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please make sure you have sufficient fund to process this transaction"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please do the top up to proceed this transactions"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Your Account has insufficient funds to process this transaction"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "500",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"status\":500,\n  \"data\":null,\n\t\"error\":\n  \t{\n\t\t\t\"code\":\"service_unavailable\",\n    \t\"message\":\"We are facing some problem in service, Please try again\",\n    \t\"action\":\"Please wait and retry again\",\n    \t\"reason\":\"Service is not available\"\n\t\t},\n  \"metaData\":\n\t\t{\n    \t\"source\":\"API\",\n      \"entity\":\"Payment\"\n  \t}\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 500,
                      "default": 0
                    },
                    "data": {},
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "service_unavailable"
                        },
                        "message": {
                          "type": "string",
                          "example": "We are facing some problem in service, Please try again"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please wait and retry again"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Service is not available"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "503",
            "content": {
              "application/json": {
                "examples": {
                  "Bank under maintenance": {
                    "value": "{\n    \"status\": 503,\n    \"error\": {\n        \"code\": \"Destination_under_maintenance\",\n        \"message\": \"The destination is currently under maintenance\",\n        \"action\": \"Please try again later\",\n        \"reason\": \"Temporary downtime for the destination bank\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 503,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "Destination_under_maintenance"
                        },
                        "message": {
                          "type": "string",
                          "example": "The destination is currently under maintenance"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please try again later"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Temporary downtime for the destination bank"
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "BIFAST Disbursement"
        ],
        "x-docs-page": "/brickfast-disbursement/api/bifast-disbursement",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/bifast-disbursements"
      }
    },
    "/v2/payments/gs/disbursements": {
      "post": {
        "summary": "Regular Disbursement",
        "description": "Create a regular disbursement to a bank account or supported Ewallet destination. Use this endpoint for standard payout workflows where BI-FAST is not required, not available, or not selected by your routing rules. Submit a unique reference ID and recipient details, then reconcile completion through callbacks, ledger records, or the disbursement status endpoints.",
        "operationId": "disbursement-regular",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "referenceId",
                  "description",
                  "amount",
                  "disbursementMethod"
                ],
                "properties": {
                  "referenceId": {
                    "type": "string",
                    "description": "A unique reference ID as a unique identifier",
                    "default": "test-1"
                  },
                  "description": {
                    "type": "string",
                    "description": "An arbitrary string attached to the object. Often useful for displaying to users what the transaction was for. Description length limit is 1000 chars.",
                    "default": "test-disbursement-1"
                  },
                  "amount": {
                    "type": "integer",
                    "description": "Amount that you would like to send",
                    "default": 29999,
                    "format": "int32"
                  },
                  "disbursementMethod": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "default": "bank_transfer"
                      },
                      "bankAccountNo": {
                        "type": "string",
                        "default": "000123456789"
                      },
                      "bankShortCode": {
                        "type": "string",
                        "default": "MANDIRI"
                      },
                      "bankAccountHolderName": {
                        "type": "string",
                        "default": "Example Customer"
                      }
                    }
                  },
                  "recipientEmail": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"status\": 200,\n  \"data\": {\n    \"message\": \"We have received your request and are processing it, please check your callback URL for transaction status\",\n    \"id\": \"example-disbursement-id\",\n    \"type\": \"disbursement\",\n    \"attributes\": {\n      \"referenceId\": \"reference-id-from-your-system\",\n      \"description\": \"reference-id-from-your-system\",\n      \"amount\": \"100000\",\n      \"feeAmount\": \"2000\",\n      \"status\": \"processing\",\n      \"settlementStatus\": \"null\",\n      \"createdAt\": \"2022-07-21T13:49:39.752+07:00\",\n      \"disbursementMethod\": {\n        \"type\": \"bank_transfer\",\n        \"bankAccountNo\": \"000123456789\",\n        \"bankShortCode\": \"BCA\",\n        \"bankAccountHolderName\": \"Example Customer\"\n      }\n    }\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"error\": null\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Invalid transfer amount": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please use amount more than minimum transfer limit, ie:10.000\",\n        \"action\": \"Please make sure the amount you requested is in the range of Rp 10.000 to Rp 100.000.000\",\n        \"reason\": \"Your amount of transfer is below our minimum transfer amount\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "bankShortCode invalid": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please use valid bankShortCode in the request query\",\n        \"action\": \"Please revalidate your bank short code https://docs.onebrick.io/brickfast-disbursement/api/list-of-bank-coverage\",\n        \"reason\": \"bankShortCode is not valid in the request query\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "callback not available": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"session_available_in_other_device\",\n        \"message\": \"Callback URL is not available\",\n        \"action\": \"Please add the callback URL from dashboard or contact contact sales team\",\n        \"reason\": \"This is Async API, Final response will be sended over callback URL\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "referenceId already used": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please make sure your External key (reference id) has never been used before\",\n        \"action\": \"Please make sure to always use unique reference ID in the parameter\",\n        \"reason\": \"Your external id (referenceId) has already been taken\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Invalid transfer amount",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use amount more than minimum transfer limit, ie:10.000"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please make sure the amount you requested is in the range of Rp 10.000 to Rp 100.000.000"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Your amount of transfer is below our minimum transfer amount"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "bankShortCode invalid",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use valid bankShortCode in the request query"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please revalidate your bank short code https://docs.onebrick.io/brickfast-disbursement/api/list-of-bank-coverage"
                            },
                            "reason": {
                              "type": "string",
                              "example": "bankShortCode is not valid in the request query"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "callback not available",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "session_available_in_other_device"
                            },
                            "message": {
                              "type": "string",
                              "example": "Callback URL is not available"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please add the callback URL from dashboard or contact contact sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "This is Async API, Final response will be sended over callback URL"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "referenceId already used",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please make sure your External key (reference id) has never been used before"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please make sure to always use unique reference ID in the parameter"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Your external id (referenceId) has already been taken"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "Invalid token": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Please use valid Public_access_token in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"Invalid public_access_token in headers\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "insufficient balance": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please make sure you have sufficient fund to process this transaction\",\n        \"action\": \"Please do the top up to proceed this transactions\",\n        \"reason\": \"Your Account has insufficient funds to process this transaction\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Invalid token",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use valid Public_access_token in headers"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Invalid public_access_token in headers"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "insufficient balance",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please make sure you have sufficient fund to process this transaction"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please do the top up to proceed this transactions"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Your Account has insufficient funds to process this transaction"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "500",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"status\":500,\n  \"data\":null,\n\t\"error\":\n  \t{\n\t\t\t\"code\":\"service_unavailable\",\n    \t\"message\":\"We are facing some problem in service, Please try again\",\n    \t\"action\":\"Please wait and retry again\",\n    \t\"reason\":\"Service is not available\"\n\t\t},\n  \"metaData\":\n\t\t{\n    \t\"source\":\"API\",\n      \"entity\":\"Payment\"\n  \t}\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 500,
                      "default": 0
                    },
                    "data": {},
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "service_unavailable"
                        },
                        "message": {
                          "type": "string",
                          "example": "We are facing some problem in service, Please try again"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please wait and retry again"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Service is not available"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "503",
            "content": {
              "application/json": {
                "examples": {
                  "Bank under maintenance": {
                    "value": "{\n    \"status\": 503,\n    \"error\": {\n        \"code\": \"Destination_under_maintenance\",\n        \"message\": \"The destination is currently under maintenance\",\n        \"action\": \"Please try again later\",\n        \"reason\": \"Temporary downtime for the destination bank\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 503,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "Destination_under_maintenance"
                        },
                        "message": {
                          "type": "string",
                          "example": "The destination is currently under maintenance"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please try again later"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Temporary downtime for the destination bank"
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Regular Disbursement"
        ],
        "x-docs-page": "/brickfast-disbursement/api/regular-disbursement",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/disbursements"
      }
    },
    "/v2/payments/gs/disbursements/{disbursementId}": {
      "get": {
        "summary": "Check Disbursement Status using Disbursement ID",
        "description": "Retrieve the latest disbursement status by Brick disbursement ID. Use this endpoint after creating a Regular or BI-FAST payout when your system has stored the Brick-generated disbursement identifier. The response helps support, operations, and reconciliation systems confirm whether a payout is processing, completed, failed, or requires further investigation.",
        "operationId": "check-disbursement-status-using-reference-id",
        "parameters": [
          {
            "name": "disbursementId",
            "in": "path",
            "description": "Disbursement ID of the transaction",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"message\": \"We have successfuly retrieve your disbursement\",\n        \"id\": \"c8836b555a8842b2ac20fef1a\",\n        \"type\": \"disbursement\",\n        \"attributes\": {\n            \"referenceId\": \"182y1841\",\n            \"description\": \"Disbursement\",\n            \"amount\": \"29999\",\n            \"status\": \"failed\",\n            \"createdAt\": \"2030-12-22T10:12:08.000+07:00\",\n            \"disbursementMethod\": {\n                \"type\": \"bank_transfer\",\n                \"bankAccountNo\": \"78472\",\n                \"bankShortCode\": \"MANDIRI\",\n                \"bankAccountHolderName\": \"Test\",\n                \"bankName\": \"Bank Mandiri\"\n            },\n            \"errorCode\": \"\",\n            \"errorReason\": \"\"\n        }\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "We have successfuly retrieve your disbursement"
                        },
                        "id": {
                          "type": "string",
                          "example": "c8836b555a8842b2ac20fef1a"
                        },
                        "type": {
                          "type": "string",
                          "example": "disbursement"
                        },
                        "attributes": {
                          "type": "object",
                          "properties": {
                            "referenceId": {
                              "type": "string",
                              "example": "182y1841"
                            },
                            "description": {
                              "type": "string",
                              "example": "Disbursement"
                            },
                            "amount": {
                              "type": "string",
                              "example": "29999"
                            },
                            "status": {
                              "type": "string",
                              "example": "failed"
                            },
                            "createdAt": {
                              "type": "string",
                              "example": "2030-12-22T10:12:08.000+07:00"
                            },
                            "disbursementMethod": {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "example": "bank_transfer"
                                },
                                "bankAccountNo": {
                                  "type": "string",
                                  "example": "78472"
                                },
                                "bankShortCode": {
                                  "type": "string",
                                  "example": "MANDIRI"
                                },
                                "bankAccountHolderName": {
                                  "type": "string",
                                  "example": "Test"
                                },
                                "bankName": {
                                  "type": "string",
                                  "example": "Bank Mandiri"
                                }
                              }
                            },
                            "errorCode": {
                              "type": "string",
                              "example": ""
                            },
                            "errorReason": {
                              "type": "string",
                              "example": ""
                            }
                          }
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "invalid token": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Please use valid Public_access_token in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"Invalid public_access_token in headers\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 401,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "invalid_parameters_in_headers"
                        },
                        "message": {
                          "type": "string",
                          "example": "Please use valid Public_access_token in headers"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Invalid public_access_token in headers"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Disbursement"
        ],
        "x-docs-page": "/brickfast-disbursement/api/check-status-by-disbursement-id",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/disbursements/{disbursementId}"
      }
    },
    "/v2/payments/gs/disbursements/transaction": {
      "get": {
        "summary": "Check Disbursement Status using Reference ID",
        "description": "Retrieve the latest disbursement status by your client-provided reference ID. Use this endpoint when internal orders, payout batches, or support cases are keyed by your own reference instead of the Brick disbursement ID. The response connects your business transaction to Brick payout state for reconciliation and customer communication.",
        "operationId": "retrieve-disbursement-using",
        "parameters": [
          {
            "name": "referenceId",
            "in": "query",
            "description": "Reference ID from given from Client Side",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"message\": \"We have successfuly retrieve your disbursement\",\n        \"id\": \"c8836b555a8842b2ac20fef1a\",\n        \"type\": \"disbursement\",\n        \"attributes\": {\n            \"referenceId\": \"182y1841\",\n            \"description\": \"Disbursement\",\n            \"amount\": \"29999\",\n            \"status\": \"failed\",\n            \"createdAt\": \"2030-12-22T10:12:08.000+07:00\",\n            \"disbursementMethod\": {\n                \"type\": \"bank_transfer\",\n                \"bankAccountNo\": \"78472\",\n                \"bankShortCode\": \"MANDIRI\",\n                \"bankAccountHolderName\": \"Test\",\n                \"bankName\": \"Bank Mandiri\"\n            },\n            \"errorCode\": \"\",\n            \"errorReason\": \"\"\n        }\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "We have successfuly retrieve your disbursement"
                        },
                        "id": {
                          "type": "string",
                          "example": "c8836b555a8842b2ac20fef1a"
                        },
                        "type": {
                          "type": "string",
                          "example": "disbursement"
                        },
                        "attributes": {
                          "type": "object",
                          "properties": {
                            "referenceId": {
                              "type": "string",
                              "example": "182y1841"
                            },
                            "description": {
                              "type": "string",
                              "example": "Disbursement"
                            },
                            "amount": {
                              "type": "string",
                              "example": "29999"
                            },
                            "status": {
                              "type": "string",
                              "example": "failed"
                            },
                            "createdAt": {
                              "type": "string",
                              "example": "2030-12-22T10:12:08.000+07:00"
                            },
                            "disbursementMethod": {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "example": "bank_transfer"
                                },
                                "bankAccountNo": {
                                  "type": "string",
                                  "example": "78472"
                                },
                                "bankShortCode": {
                                  "type": "string",
                                  "example": "MANDIRI"
                                },
                                "bankAccountHolderName": {
                                  "type": "string",
                                  "example": "Test"
                                },
                                "bankName": {
                                  "type": "string",
                                  "example": "Bank Mandiri"
                                }
                              }
                            },
                            "errorCode": {
                              "type": "string",
                              "example": ""
                            },
                            "errorReason": {
                              "type": "string",
                              "example": ""
                            }
                          }
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "invalid token": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Please use valid Public_access_token in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"Invalid public_access_token in headers\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 401,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "invalid_parameters_in_headers"
                        },
                        "message": {
                          "type": "string",
                          "example": "Please use valid Public_access_token in headers"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Invalid public_access_token in headers"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Disbursement"
        ],
        "x-docs-page": "/brickfast-disbursement/api/check-status-by-reference-id",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/disbursements/transaction"
      }
    },
    "/v2/payments/gs/ledger": {
      "get": {
        "summary": "Ledger / Disbursement History",
        "description": "Retrieve ledger records for a selected date or time interval to reconcile Brick transactions in near real time. Use this endpoint to compare disbursements, top-ups, settlements, and operational balance movements against your internal financial records. The response is intended for finance dashboards, accounting exports, and transaction investigations.",
        "operationId": "ledger-api",
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "description": "From when the transaction should be retrieved. Format is YYYY-MM-DD",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "Until when the transaction should be retrieved. format is YYYY-MM-DD",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Status of transaction. either completed or processing or pending or failed. always lower case",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Look for specific transaction ID or referenceId",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Which page of the data should be retrieved",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "how many records need to be retrieved per page. Maximum record is 2000 & default is 100 per page",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"message\": \"We are successfully able to get the data\",\n        \"transactions\": [\n            {\n                \"refId\": \"ref-1\",\n                \"date\": \"2022-10-03T15:17:44.000+07:00\",\n                \"accountHolderName\": \"test-123\",\n                \"accountNumber\": \"12345678\",\n                \"bankName\": \"Bank Artos Indonesia\",\n                \"description\": \"Demo-1\",\n                \"amount\": 20000,\n                \"fees\": 4500,\n                \"status\": \"completed\"\n            },{\n                \"refId\": \"ref-id123\",\n                \"date\": \"2022-11-03T15:17:44.000+07:00\",\n                \"accountHolderName\": \"test-123\",\n                \"accountNumber\": \"12345678\",\n                \"bankName\": \"Bank Artos Indonesia\",\n                \"description\": \"Demo-2\",\n                \"amount\": 20000,\n                \"fees\": 4500,\n                \"status\": \"completed\"\n            }\n        ]\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "We are successfully able to get the data"
                        },
                        "transactions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "refId": {
                                "type": "string",
                                "example": "ref-1"
                              },
                              "date": {
                                "type": "string",
                                "example": "2022-10-03T15:17:44.000+07:00"
                              },
                              "accountHolderName": {
                                "type": "string",
                                "example": "test-123"
                              },
                              "accountNumber": {
                                "type": "string",
                                "example": "12345678"
                              },
                              "bankName": {
                                "type": "string",
                                "example": "Bank Artos Indonesia"
                              },
                              "description": {
                                "type": "string",
                                "example": "Demo-1"
                              },
                              "amount": {
                                "type": "integer",
                                "example": 20000,
                                "default": 0
                              },
                              "fees": {
                                "type": "integer",
                                "example": 4500,
                                "default": 0
                              },
                              "status": {
                                "type": "string",
                                "example": "completed"
                              }
                            }
                          }
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "invalid token": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Please use valid Public_access_token in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"Invalid public_access_token in headers\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 401,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "invalid_parameters_in_headers"
                        },
                        "message": {
                          "type": "string",
                          "example": "Please use valid Public_access_token in headers"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Invalid public_access_token in headers"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Ledger"
        ],
        "x-docs-page": "/brickfast-disbursement/api/ledger-disbursement-history",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/ledger"
      }
    },
    "/v2/payments/gs/disbursements/proof/{disbId}/download": {
      "get": {
        "summary": "Download Transfer Proof API",
        "description": "Download the proof of transfer document for a disbursement when you need evidence that a payout was processed. Use this endpoint for customer support, audit trails, merchant reporting, and finance documentation. Requests are rate limited, so cache downloaded proof files and avoid repeated calls for the same disbursement.",
        "operationId": "download-transfer-proof-api",
        "parameters": [
          {
            "name": "disbId",
            "in": "path",
            "description": "The Disbursement Id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"message\": \"Transfer proof has been successfully sent\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "Transfer proof has been successfully sent"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {
                      "nullable": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Please use valid Public_access_token in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"Invalid public_access_token in headers\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 401,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "invalid_parameters_in_headers"
                        },
                        "message": {
                          "type": "string",
                          "example": "Please use valid Public_access_token in headers"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Invalid public_access_token in headers"
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 404,\n    \"error\": {\n        \"code\": \"disbursement_not_found\",\n        \"message\": \"Please use the API with valid Reference_id in the request query\",\n        \"action\": \"Please read the docs to understand more or contact to Brick sales team\",\n        \"reason\": \"disbursement not found\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 404,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "disbursement_not_found"
                        },
                        "message": {
                          "type": "string",
                          "example": "Please use the API with valid Reference_id in the request query"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please read the docs to understand more or contact to Brick sales team"
                        },
                        "reason": {
                          "type": "string",
                          "example": "disbursement not found"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Transfer Proof"
        ],
        "x-docs-page": "/brickfast-disbursement/transfer-proof/download-transfer-proof-api",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/disbursements/proof/{disbId}/download"
      }
    },
    "/v2/payments/gs/va/open": {
      "post": {
        "summary": "Generate Open VA",
        "description": "Generate an Open Virtual Account that can receive flexible payment amounts from a customer. Use Open VA when the payer can transfer varying amounts to the same VA identifier, such as wallet top-up or reusable account funding flows. Store the VA details returned by Brick and reconcile payments through callbacks or the Open VA status endpoint.",
        "operationId": "generate-open-va",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "bankShortCode",
                  "referenceId",
                  "displayName"
                ],
                "properties": {
                  "bankShortCode": {
                    "type": "string",
                    "description": "Institution short code of the bank",
                    "default": "MANDIRI"
                  },
                  "referenceId": {
                    "type": "string",
                    "description": "Unique ID that is being generated by the client to track each VA generation (maximum 255 characters)",
                    "default": "test-VA-1"
                  },
                  "displayName": {
                    "type": "string",
                    "description": "Display name shown in the customer's payment platform (maximum 24 characters).",
                    "default": "PRODONLY"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n\t\t\t\t\"message\": \"We have successfully generated the open VA\",\n        \"id\": \"OP_SA123212SDS123123SAD11222\",\n        \"referenceId\": \"BRICK1234\",\n\t\t\t\t\"bankShortCode\": \"MANDIRI\",\n        \"accountNo\": \"130432138889902\",\n        \"displayName\": \"BRICK\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "We have successfully generated the open VA"
                        },
                        "id": {
                          "type": "string",
                          "example": "OP_SA123212SDS123123SAD11222"
                        },
                        "referenceId": {
                          "type": "string",
                          "example": "BRICK1234"
                        },
                        "bankShortCode": {
                          "type": "string",
                          "example": "MANDIRI"
                        },
                        "accountNo": {
                          "type": "string",
                          "example": "130432138889902"
                        },
                        "displayName": {
                          "type": "string",
                          "example": "BRICK"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "bankShortCode not supported": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"Incorrect_format_of_parameters_in_request\",\n        \"message\": \"Please use Bank Code that we support in the request query\",\n        \"action\": \"Please revisit our API doc to see our supported Bank Code\",\n        \"reason\": \"Bank Code is not supported\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "referenceId used": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please make sure your External key (reference id) has never been used before\",\n        \"action\": \"Please make sure to always use unique reference ID in the parameter\",\n        \"reason\": \"Your external id (referenceId) has already been taken\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "bankShortCode do not use suffixNo": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please do not customize the suffix number for this Bank Code\",\n        \"action\": \"Please use the suffix number given without customization\",\n        \"reason\": \"Suffix number customization is not supported for this Bank Code\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "bankShortCode not supported",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "Incorrect_format_of_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use Bank Code that we support in the request query"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please revisit our API doc to see our supported Bank Code"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Bank Code is not supported"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "referenceId used",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please make sure your External key (reference id) has never been used before"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please make sure to always use unique reference ID in the parameter"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Your external id (referenceId) has already been taken"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "bankShortCode do not use suffixNo",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please do not customize the suffix number for this Bank Code"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please use the suffix number given without customization"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Suffix number customization is not supported for this Bank Code"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "Invalid token": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Please use valid Public_access_token in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"Invalid public_access_token in headers\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 401,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "invalid_parameters_in_headers"
                        },
                        "message": {
                          "type": "string",
                          "example": "Please use valid Public_access_token in headers"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Invalid public_access_token in headers"
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Virtual Account Open VA"
        ],
        "x-docs-page": "/brickcollect-acceptance/virtual-account/generate-open-va",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/va/open"
      },
      "get": {
        "summary": "Status of Open VA",
        "description": "Check the latest payment status for an Open Virtual Account. Use this endpoint when callbacks are delayed, when support teams need to verify a payment, or when your reconciliation job needs to confirm the current VA state. Pass the required VA identifiers and use the response to update internal payment records.",
        "operationId": "status-of-open-va",
        "parameters": [
          {
            "name": "vaId",
            "in": "query",
            "description": "Unique id of virtual account ex: OP_xxxx",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"message\": \"We have successfully retrieved the open VA\",\n        \"id\": \"OP_123451123123\",\n        \"referenceId\": \"brick12345\",\n        \"bankShortCode\": \"BCA\",\n        \"accountNo\": \"1304321312312310\",\n        \"displayName\": \"BRICK\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}\n"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "We have successfully retrieved the open VA"
                        },
                        "id": {
                          "type": "string",
                          "example": "OP_123451123123"
                        },
                        "referenceId": {
                          "type": "string",
                          "example": "brick12345"
                        },
                        "bankShortCode": {
                          "type": "string",
                          "example": "BCA"
                        },
                        "accountNo": {
                          "type": "string",
                          "example": "1304321312312310"
                        },
                        "displayName": {
                          "type": "string",
                          "example": "BRICK"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "Invalid id": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Transaction ID not found\",\n        \"action\": \"Please ensure that the transaction ID is correct\",\n        \"reason\": \"We did not find any transaction with such ID\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "invalid token": {
                    "value": "{\n  \"status\": 401,\n  \"error\": {\n    \"code\": \"invalid_parameters_in_headers\",\n    \"message\": \"Please use valid Public_access_token in headers\",\n    \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n    \"reason\": \"Invalid public_access_token in headers\"\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Invalid id",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Transaction ID not found"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please ensure that the transaction ID is correct"
                            },
                            "reason": {
                              "type": "string",
                              "example": "We did not find any transaction with such ID"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "invalid token",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use valid Public_access_token in headers"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Invalid public_access_token in headers"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Virtual Account Open VA"
        ],
        "x-docs-page": "/brickcollect-acceptance/virtual-account/status-open-va",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/va/open"
      }
    },
    "/v2/payments/gs/va/close": {
      "post": {
        "summary": "Generate Close VA",
        "description": "Generate a Close Virtual Account for a fixed payment amount, customer reference, and expiration window. Use Close VA when each order or invoice should be paid with an exact amount and controlled validity period. The response returns VA details that can be shown to the customer and later reconciled through callback or status inquiry.",
        "operationId": "generate-closed-va",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "referenceId",
                  "bankShortCode",
                  "amount",
                  "expiredAt",
                  "displayName"
                ],
                "properties": {
                  "referenceId": {
                    "type": "string",
                    "description": "Unique ID that is being generated by the client to track each VA generation",
                    "default": "test-closeVA-1"
                  },
                  "bankShortCode": {
                    "type": "string",
                    "default": "MANDIRI"
                  },
                  "amount": {
                    "type": "integer",
                    "description": "The amount that will be stated in the virtual account",
                    "default": 10000,
                    "format": "int32"
                  },
                  "expiredAt": {
                    "type": "string",
                    "description": "The expiration time of the close VA in Minute",
                    "default": "60"
                  },
                  "displayName": {
                    "type": "string",
                    "description": "Displayed name of VA",
                    "default": "Close VA test"
                  },
                  "description": {
                    "type": "string",
                    "description": "The description that will be stated in the virtual account (maximum 255 characters)",
                    "default": "test-closeVA-1"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n\t\t\t\t\"message\": \"We have successfully generated the close VA\",\n        \"id\": \"CL_asd31231SAD123123asasd122\",\n\t\t\t\t\"referenceId\": \"brick12345\",\n        \"description\": \"Test Initial VA Close\",\n        \"amount\": \"15000.0\",\n        \"status\": \"pending\",\n        \"createdAt\": \"2021-12-13T14:26:43.000+07:00\",\n        \"expiredAt\": \"2021-12-31T15:27:43.000+07:00\",\n        \"bankShortCode\": \"MANDIRI\",\n        \"accountNo\": \"1304421991909265\",\n        \"displayName\": \"IKN-BRICK\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "We have successfully generated the close VA"
                        },
                        "id": {
                          "type": "string",
                          "example": "CL_asd31231SAD123123asasd122"
                        },
                        "referenceId": {
                          "type": "string",
                          "example": "brick12345"
                        },
                        "description": {
                          "type": "string",
                          "example": "Test Initial VA Close"
                        },
                        "amount": {
                          "type": "string",
                          "example": "15000.0"
                        },
                        "status": {
                          "type": "string",
                          "example": "pending"
                        },
                        "createdAt": {
                          "type": "string",
                          "example": "2021-12-13T14:26:43.000+07:00"
                        },
                        "expiredAt": {
                          "type": "string",
                          "example": "2021-12-31T15:27:43.000+07:00"
                        },
                        "bankShortCode": {
                          "type": "string",
                          "example": "MANDIRI"
                        },
                        "accountNo": {
                          "type": "string",
                          "example": "1304421991909265"
                        },
                        "displayName": {
                          "type": "string",
                          "example": "IKN-BRICK"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "bankShortCode not supported": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"Incorrect_format_of_parameters_in_request\",\n        \"message\": \"Please use Bank Code that we support in the request query\",\n        \"action\": \"Please revisit our API doc to see our supported Bank Code\",\n        \"reason\": \"Bank Code is not supported\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "referenceId used": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please make sure your External key (reference id) has never been used before\",\n        \"action\": \"Please make sure to always use unique reference ID in the parameter\",\n        \"reason\": \"Your external id (referenceId) has already been taken\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "bankShortCode do not use suffixNo": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please do not customize the suffix number for this Bank Code\",\n        \"action\": \"Please use the suffix number given without customization\",\n        \"reason\": \"Suffix number customization is not supported for this Bank Code\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "bankShortCode not supported",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "Incorrect_format_of_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use Bank Code that we support in the request query"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please revisit our API doc to see our supported Bank Code"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Bank Code is not supported"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "referenceId used",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please make sure your External key (reference id) has never been used before"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please make sure to always use unique reference ID in the parameter"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Your external id (referenceId) has already been taken"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "bankShortCode do not use suffixNo",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please do not customize the suffix number for this Bank Code"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please use the suffix number given without customization"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Suffix number customization is not supported for this Bank Code"
                            }
                          }
                        },
                        "metadata": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "invalid token": {
                    "value": "{\n  \"status\": 401,\n  \"error\": {\n    \"code\": \"invalid_parameters_in_headers\",\n    \"message\": \"Please use valid Public_access_token in headers\",\n    \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n    \"reason\": \"Invalid public_access_token in headers\"\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 401,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "invalid_parameters_in_headers"
                        },
                        "message": {
                          "type": "string",
                          "example": "Please use valid Public_access_token in headers"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Invalid public_access_token in headers"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Virtual Account Close VA"
        ],
        "x-docs-page": "/brickcollect-acceptance/virtual-account/generate-close-va",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/va/close"
      },
      "get": {
        "summary": "Status of Close VA",
        "description": "Check the latest payment status for a Close Virtual Account. Use this endpoint to confirm whether a fixed-amount VA has been paid, expired, or is still pending. It is useful for order reconciliation, customer support, and scheduled jobs that need to resolve unpaid or delayed bank transfer payments.",
        "operationId": "status-of-close-va",
        "parameters": [
          {
            "name": "vaId",
            "in": "query",
            "description": "Unique id of virtual account ex: CL_xxxx",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"message\": \"We have successfully retrieved the close VA\",\n\t      \"id\": \"BR_1238512012301923\",\n        \"referenceId\": \"BRICK-12345\",\n        \"description\": \"Test Initial VA Close\",\n        \"amount\": \"15000.0\",\n        \"status\": \"pending\",\n        \"createdAt\": \"2023-03-28T17:12:55.638+07:00\",\n        \"expiredAt\": \"2023-03-29T12:07:04.000+07:00\",\n\t\t\t\t\"bankShortCode\": \"MANDIRI\",\n        \"accountNo\": \"7001202303299393369\",\n        \"displayName\": \"BRICK\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "We have successfully retrieved the close VA"
                        },
                        "id": {
                          "type": "string",
                          "example": "BR_1238512012301923"
                        },
                        "referenceId": {
                          "type": "string",
                          "example": "BRICK-12345"
                        },
                        "description": {
                          "type": "string",
                          "example": "Test Initial VA Close"
                        },
                        "amount": {
                          "type": "string",
                          "example": "15000.0"
                        },
                        "status": {
                          "type": "string",
                          "example": "pending"
                        },
                        "createdAt": {
                          "type": "string",
                          "example": "2023-03-28T17:12:55.638+07:00"
                        },
                        "expiredAt": {
                          "type": "string",
                          "example": "2023-03-29T12:07:04.000+07:00"
                        },
                        "bankShortCode": {
                          "type": "string",
                          "example": "MANDIRI"
                        },
                        "accountNo": {
                          "type": "string",
                          "example": "7001202303299393369"
                        },
                        "displayName": {
                          "type": "string",
                          "example": "BRICK"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "invalid id": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Transaction ID not found\",\n        \"action\": \"Please ensure that the transaction ID is correct\",\n        \"reason\": \"We did not find any transaction with such ID\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "invalid token": {
                    "value": "{\n  \"status\": 401,\n  \"error\": {\n    \"code\": \"invalid_parameters_in_headers\",\n    \"message\": \"Please use valid Public_access_token in headers\",\n    \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n    \"reason\": \"Invalid public_access_token in headers\"\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "invalid id",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Transaction ID not found"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please ensure that the transaction ID is correct"
                            },
                            "reason": {
                              "type": "string",
                              "example": "We did not find any transaction with such ID"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "invalid token",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use valid Public_access_token in headers"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Invalid public_access_token in headers"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Virtual Account Close VA"
        ],
        "x-docs-page": "/brickcollect-acceptance/virtual-account/status-close-va",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/va/close"
      }
    },
    "/v2/payments/gs/va/close/status/{vaIdCL}": {
      "post": {
        "summary": "Simulate Close VA Payment [PAID/COMPLETED]",
        "description": "Simulate a Close VA payment status change in the sandbox environment. Use this endpoint during development to test callbacks, reconciliation logic, paid-state handling, and failure recovery without moving real funds. This endpoint is not intended for production traffic and should only be used with sandbox VA test data.",
        "operationId": "simulate-payment-of-close-va-paid",
        "parameters": [
          {
            "name": "vaIdCL",
            "in": "path",
            "description": "ID of VA that is generated by Brick in the VA generation API response for simulating \"paid\" status, ID of Payment that is generated by Brick in the VA callback response for simulating \"PAID/COMPLETED\" status. Ex: CL_xxx",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "description": "The status that want to be achieved (PAID / COMPLETED)",
                    "default": "PAID/COMPLETED"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {}
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {}
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Virtual Account Close VA"
        ],
        "x-docs-page": "/brickcollect-acceptance/virtual-account/simulate-close-va-payment",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/va/close/status/{vaIdCL}"
      }
    },
    "/v2/payments/gs/qris/dynamic": {
      "post": {
        "summary": "Generate Dynamic QR Code",
        "description": "Create a dynamic QRIS QR Code for a specific payment amount and reference ID. Use this endpoint when every customer transaction needs a unique QR payload for payment collection. The response includes QR data that can be rendered in your checkout flow, while final payment state should be confirmed through callbacks or the dynamic QR status endpoint.",
        "operationId": "generate-dynamic-qris",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "referenceId",
                  "amount"
                ],
                "properties": {
                  "referenceId": {
                    "type": "string",
                    "description": "Unique reference of Transactions from client side(Maximum length of 25 characters)"
                  },
                  "amount": {
                    "type": "integer",
                    "description": "Amount that clients wants to transfer",
                    "format": "int32"
                  },
                  "validityPeriod": {
                    "type": "string",
                    "description": "Minimum 600 seconds (10 minutes), maximum 86,400 seconds (24 hours) from the creation time. If not set, the default value will be 86,400 seconds (24 hours)"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Success Response": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"message\": \"We have successfully generated the dynamic qris\",\n        \"id\":\"QR_7d13c668fea84081832d02368c61af69\",\n        \"referenceId\": \"test-qris-sandbox\",\n        \"amount\": 10000,\n        \"createdAt\": \"2024-01-16T17:00:00.000+07:00\",\n        \"expiredAt\": \"2024-01-17T17:00:00.000+07:00\",\n        \"qrData\": \"00020101021226670016COM.NOBUBANK.WWW01189360050300000491530214082500000318170303UKE51440014ID.CO.QR Code.WWW0215ID20200814004210303UKE5204549953033605405100005802ID5914BRICK PAYMENT 6015Banten - Kota T61051581162570114011200010968090620202401121013231606140703A010804POSP630443C4\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "We have successfully generated the dynamic qris"
                        },
                        "id": {
                          "type": "string",
                          "example": "QR_7d13c668fea84081832d02368c61af69"
                        },
                        "referenceId": {
                          "type": "string",
                          "example": "test-qris-sandbox"
                        },
                        "amount": {
                          "type": "integer",
                          "example": 10000,
                          "default": 0
                        },
                        "createdAt": {
                          "type": "string",
                          "example": "2024-01-16T17:00:00.000+07:00"
                        },
                        "expiredAt": {
                          "type": "string",
                          "example": "2024-01-17T17:00:00.000+07:00"
                        },
                        "qrData": {
                          "type": "string",
                          "example": "00020101021226670016COM.NOBUBANK.WWW01189360050300000491530214082500000318170303UKE51440014ID.CO.QR Code.WWW0215ID20200814004210303UKE5204549953033605405100005802ID5914BRICK PAYMENT 6015Banten - Kota T61051581162570114011200010968090620202401121013231606140703A010804POSP630443C4"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "Public token in invalid ": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"missing_parameters_in_headers\",\n        \"message\": \"Please use API with publicAccessToken in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"publicAccessToken is missing from headers\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "Public token expired": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"expired_parameters_in_headers\",\n        \"message\": \"Please use live publicAccessToken in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"publicAccessToken is expired\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Public token in invalid ",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "missing_parameters_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use API with publicAccessToken in headers"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "publicAccessToken is missing from headers"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "Public token expired",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 401,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "expired_parameters_in_headers"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use live publicAccessToken in headers"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                            },
                            "reason": {
                              "type": "string",
                              "example": "publicAccessToken is expired"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "QR Code Dynamic"
        ],
        "x-docs-page": "/brickcollect-acceptance/qris/dynamic/generate-dynamic-qris",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/qris/dynamic"
      }
    },
    "/v2/payments/gs/qris/dynamic/{referenceId}": {
      "get": {
        "summary": "Status for Dynamic QR Code",
        "description": "Check the latest status of a dynamic QRIS transaction by reference ID. Use this endpoint when your system needs to confirm whether a QR payment is still processing, paid, expired, or unresolved. It complements callbacks and is useful for reconciliation jobs, customer support checks, and payment confirmation screens.",
        "operationId": "status-dynamic-qris",
        "parameters": [
          {
            "name": "referenceId",
            "in": "path",
            "description": "Unique referenceId of Transactions",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Success Response": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"id\": \"QR_7d13c668fea84081832d02368c61af69\",\n        \"referenceId\": \"test-qris-sandbox\",\n        \"amount\": 10000,\n        \"status\": \"processing\",\n        \"qrData\": \"00020101021226670016COM.NOBUBANK.WWW01189360050300000491530214082500000318170303UKE51440014ID.CO.QR Code.WWW0215ID20200814004210303UKE5204549953033605405100005802ID5914BRICK PAYMENT 6015Banten - Kota T61051581162570114011200010968090620202401121013231606140703A010804POSP630443C4\",\n        \"paidAt\": null\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "QR_7d13c668fea84081832d02368c61af69"
                        },
                        "referenceId": {
                          "type": "string",
                          "example": "test-qris-sandbox"
                        },
                        "amount": {
                          "type": "integer",
                          "example": 10000,
                          "default": 0
                        },
                        "status": {
                          "type": "string",
                          "example": "processing"
                        },
                        "qrData": {
                          "type": "string",
                          "example": "00020101021226670016COM.NOBUBANK.WWW01189360050300000491530214082500000318170303UKE51440014ID.CO.QR Code.WWW0215ID20200814004210303UKE5204549953033605405100005802ID5914BRICK PAYMENT 6015Banten - Kota T61051581162570114011200010968090620202401121013231606140703A010804POSP630443C4"
                        },
                        "paidAt": {}
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Public token in invalid ": {
                    "value": "{\n  \"status\": 401,\n  \"error\": {\n    \"code\": \"invalid_parameters_in_headers\",\n    \"message\": \"Please use valid publicAccessToken in headers\",\n    \"action\": \"Please generate valid public access token via /v2/auth/token APIs or contact to Brick sales team\",\n    \"reason\": \"Invalid publicAccessToken in headers\"\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"data\": null\n}"
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "QR Code Dynamic"
        ],
        "x-docs-page": "/brickcollect-acceptance/qris/dynamic/dynamic-qris-status",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/qris/dynamic/{referenceId}"
      }
    },
    "/v2/payments/gs/qris/update-status-sandbox": {
      "post": {
        "summary": "QR Code Testing in Sandbox",
        "description": "Simulate QRIS payment status changes in the sandbox environment so your team can test callback handling and reconciliation before production. Use this endpoint after generating a sandbox dynamic QR Code to move the transaction into a desired test state. Do not use it for production payments or live customer transactions.",
        "operationId": "qris-testing-in-sandbox",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "referenceId",
                  "status"
                ],
                "properties": {
                  "referenceId": {
                    "type": "string",
                    "description": "Unique referenceId of Transactions"
                  },
                  "status": {
                    "type": "string",
                    "description": "The status that want to be achieved (PAID/COMPLETED)",
                    "default": "PAID/COMPLETED"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Success Response": {
                    "value": "{\n    \"status\": 200,\n    \"data\": \"We've successfully updated the qris transaction status.\",\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "string",
                      "example": "We've successfully updated the qris transaction status."
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Public token in invalid ": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Failed update QR Code status\",\n        \"action\": \"Please check the parameter request\",\n        \"reason\": \"Cannot change status from COMPLETED / EXPIRED / PAID back to PROCESSING\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 400,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "invalid_parameters_in_request"
                        },
                        "message": {
                          "type": "string",
                          "example": "Failed update QR Code status"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please check the parameter request"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Cannot change status from COMPLETED / EXPIRED / PAID back to PROCESSING"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "QR Code Dynamic"
        ],
        "x-docs-page": "/brickcollect-acceptance/qris/dynamic/qris-testing-sandbox",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/qris/update-status-sandbox"
      }
    },
    "/v2/payments/gs/qris/merchant/bulk": {
      "get": {
        "summary": "Static QR Code Get Merchant List",
        "description": "Retrieve the list of static QRIS merchants available to your Brick account. Use this endpoint to sync merchant identifiers into your internal tools before displaying or reconciling static QR Code payment flows. The response helps map merchant data to static QR transactions and operational reporting.",
        "operationId": "static-qris-get-merchant-list",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Success Response": {
                    "value": "{\n    \"status\": 200,\n    \"data\": [\n        {\n            \"id\": 25,\n            \"name\": \"Example Merchant\",\n            \"email\": \"customer@example.com\",\n            \"ownerName\": \"Example Customer\",\n            \"address\": \"Example Address\",\n            \"nmid\": \"ID2020088800402\",\n            \"qrisImageUrl\": \"{{url_qr_code_merchant}}\",\n            \"status\": \"VERIFIED\"\n        }\n    ],\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Public token in invalid ": {
                    "value": "{\n  \"status\": 401,\n  \"error\": {\n    \"code\": \"invalid_parameters_in_headers\",\n    \"message\": \"Please use valid publicAccessToken in headers\",\n    \"action\": \"Please generate valid public access token via /v2/auth/token APIs or contact to Brick sales team\",\n    \"reason\": \"Invalid publicAccessToken in headers\"\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"data\": null\n}"
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "QR Code Static"
        ],
        "x-docs-page": "/brickcollect-acceptance/qris/static/merchant-list",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/qris/merchant/bulk"
      }
    },
    "/v2/payments/gs/qris/merchant/{id}": {
      "get": {
        "summary": "Static QR Code Get Merchant Details",
        "description": "Retrieve details for a specific static QRIS merchant by merchant ID. Use this endpoint when your system needs merchant metadata, QR identity details, or operational context before reconciling a static QR payment. The response supports merchant lookup screens, payment routing checks, and support workflows.",
        "operationId": "static-qris-get-merchant-details",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Unique ID of QR Code Merchant",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Success Response": {
                    "value": "{\n  \"status\": 200,\n  \"data\": {\n    \"id\": 25,\n    \"name\": \"Example Merchant\",\n    \"email\": \"customer@example.com\",\n    \"ownerName\": \"Example Customer\",\n    \"address\": \"Example Address\",\n    \"nmid\": \"ID2020088800402\",\n    \"qrisImageUrl\": \"{{url_qr_code_merchant}}\",\n    \"status\": \"VERIFIED\"\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "example": 25,
                          "default": 0
                        },
                        "name": {
                          "type": "string",
                          "example": "Example Merchant"
                        },
                        "email": {
                          "type": "string",
                          "example": "customer@example.com"
                        },
                        "ownerName": {
                          "type": "string",
                          "example": "Example Customer"
                        },
                        "address": {
                          "type": "string",
                          "example": "Example Address"
                        },
                        "nmid": {
                          "type": "string",
                          "example": "ID2020088800402"
                        },
                        "qrisImageUrl": {
                          "type": "string",
                          "example": "{{url_qr_code_merchant}}"
                        },
                        "status": {
                          "type": "string",
                          "example": "VERIFIED"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Public token in invalid ": {
                    "value": "{\n  \"status\": 401,\n  \"error\": {\n    \"code\": \"invalid_parameters_in_headers\",\n    \"message\": \"Please use valid publicAccessToken in headers\",\n    \"action\": \"Please generate valid public access token via /v2/auth/token APIs or contact to Brick sales team\",\n    \"reason\": \"Invalid publicAccessToken in headers\"\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"data\": null\n}"
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "QR Code Static"
        ],
        "x-docs-page": "/brickcollect-acceptance/qris/static/merchant-details",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/qris/merchant/{id}"
      }
    },
    "/v2/payments/gs/qris/static/{referenceId}": {
      "get": {
        "summary": "Status for Static QR Code",
        "description": "Check the latest status of a static QRIS transaction by reference ID. Use this endpoint when you need to confirm payment state for a merchant-presented static QR Code flow. It complements callbacks and helps operations teams resolve payment confirmation, reconciliation, or customer support questions.",
        "operationId": "status-for-static-qris",
        "parameters": [
          {
            "name": "referenceId",
            "in": "path",
            "description": "Unique referenceId of Transactions",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Success Response": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"referenceId\": \"XXXX\",\n        \"id\": \"QR_XXXX\",\n        \"amount\": 32000,\n        \"status\": \"completed\",\n        \"qrData\": \"\",\n        \"paidAt\": \"2024-03-05T01:51:01.000+07:00\",\n        \"type\": \"STATIC\",\n        \"merchant\": \"merchant_name\",\n        \"merchantNmid\": \"merchat_Nmid\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "referenceId": {
                          "type": "string",
                          "example": "XXXX"
                        },
                        "id": {
                          "type": "string",
                          "example": "QR_XXXX"
                        },
                        "amount": {
                          "type": "integer",
                          "example": 32000,
                          "default": 0
                        },
                        "status": {
                          "type": "string",
                          "example": "completed"
                        },
                        "qrData": {
                          "type": "string",
                          "example": ""
                        },
                        "paidAt": {
                          "type": "string",
                          "example": "2024-03-05T01:51:01.000+07:00"
                        },
                        "type": {
                          "type": "string",
                          "example": "STATIC"
                        },
                        "merchant": {
                          "type": "string",
                          "example": "merchant_name"
                        },
                        "merchantNmid": {
                          "type": "string",
                          "example": "merchat_Nmid"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Public token in invalid ": {
                    "value": "{\n  \"status\": 401,\n  \"error\": {\n    \"code\": \"invalid_parameters_in_headers\",\n    \"message\": \"Please use valid publicAccessToken in headers\",\n    \"action\": \"Please generate valid public access token via /v2/auth/token APIs or contact to Brick sales team\",\n    \"reason\": \"Invalid publicAccessToken in headers\"\n  },\n  \"metaData\": {\n    \"source\": \"API\",\n    \"entity\": \"Payment\"\n  },\n  \"data\": null\n}"
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "QR Code Static"
        ],
        "x-docs-page": "/brickcollect-acceptance/qris/static/static-qris-status",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/qris/static/{referenceId}"
      }
    },
    "/v2/payments/acceptance/1.0/access-token/b2b": {
      "post": {
        "summary": "Get Access Token (SNAP)",
        "description": "Generate the SNAP B2B access token required for QR Code SNAP endpoints. Send the required SNAP headers, signature, timestamp, and client key according to your Brick SNAP credential setup. Use the returned token when creating QR MPM payments or querying QR payment status through SNAP-compatible flows.",
        "operationId": "get-access-token-snap",
        "parameters": [
          {
            "name": "Content-Type",
            "in": "header",
            "description": "String represents indicate the media type of the resource",
            "required": true,
            "schema": {
              "type": "string",
              "default": "application/json"
            }
          },
          {
            "name": "X-CLIENT-KEY",
            "in": "header",
            "description": "Client’s client_id",
            "required": true,
            "schema": {
              "type": "string",
              "default": "YOUR_CLIENT_ID"
            }
          },
          {
            "name": "X-TIMESTAMP",
            "in": "header",
            "description": "Client's current local time in yyyy-MM- ddTHH:mm:ss.SSSTZD format",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "default": "2024-11-11T18:44:33+07:00"
            }
          },
          {
            "name": "X-SIGNATURE",
            "in": "header",
            "description": "Non-Repudiation & Integrity check signature for the requesting",
            "required": true,
            "schema": {
              "type": "string",
              "default": "YOUR_SIGNATURE"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "grant_type"
                ],
                "properties": {
                  "grant_type": {
                    "type": "string",
                    "description": "Must be \"client_credentials\"",
                    "default": "client_credentials"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Success Response": {
                    "value": "{\n  \"responseCode\": \"2007300\",\n  \"responseMessage\": \"Successful\",\n  \"accessToken\": \"YOUR_ACCESS_TOKEN\",\n  \"tokenType\": \"Bearer\",\n  \"expiresIn\": \"900\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "responseCode": {
                      "type": "string",
                      "example": "2007300"
                    },
                    "responseMessage": {
                      "type": "string",
                      "example": "Successful"
                    },
                    "accessToken": {
                      "type": "string",
                      "example": "YOUR_ACCESS_TOKEN"
                    },
                    "tokenType": {
                      "type": "string",
                      "example": "Bearer"
                    },
                    "expiresIn": {
                      "type": "string",
                      "example": "900"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Invalid Payload": {
                    "value": "{\n  \"responseCode\": \"4007302\",\n  \"responseMessage\": \"Invalid Mandatory Field\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "responseCode": {
                      "type": "string",
                      "example": "4007302"
                    },
                    "responseMessage": {
                      "type": "string",
                      "example": "Invalid Mandatory Field"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "Unauthorized": {
                    "value": "{\n  \"responseCode\": \"4017300\",\n  \"responseMessage\": \"Unauthorized X-SIGNATURE\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "responseCode": {
                      "type": "string",
                      "example": "4017300"
                    },
                    "responseMessage": {
                      "type": "string",
                      "example": "Unauthorized X-SIGNATURE"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "QR Code SNAP"
        ],
        "x-docs-page": "/brickcollect-acceptance/qris/snap/get-access-token",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [],
        "x-brick-endpoint-base-path": "/v2/payments",
        "x-brick-original-path": "/acceptance/1.0/access-token/b2b"
      }
    },
    "/v2/payments/acceptance/1.0/qr/qr-mpm-generate": {
      "post": {
        "summary": "Generate Dynamic QR Code (SNAP)",
        "description": "Create a dynamic QRIS MPM payment using SNAP-compatible request headers and payload structure. Use this endpoint when your integration follows Indonesian SNAP standards for QR payment creation, including signature, timestamp, partner reference, and merchant information. The response returns QR content and identifiers that should be reconciled through SNAP status inquiry or callbacks.",
        "operationId": "generate-dynamic-qris-snap",
        "parameters": [
          {
            "name": "Content-Type",
            "in": "header",
            "description": "String represents indicate the media type of the resource",
            "required": true,
            "schema": {
              "type": "string",
              "default": "application/json"
            }
          },
          {
            "name": "X-CLIENT-KEY",
            "in": "header",
            "description": "Client’s client_id",
            "required": true,
            "schema": {
              "type": "string",
              "default": "YOUR_CLIENT_ID"
            }
          },
          {
            "name": "X-TIMESTAMP",
            "in": "header",
            "description": "Client's current local time in yyyy-MM- ddTHH:mm:ss.SSSTZD format",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "default": "2024-11-15T18:44:33+07:00"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "One time access-token generated using the auth token API",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer YOUR_ACCESS_TOKEN"
            }
          },
          {
            "name": "X-SIGNATURE",
            "in": "header",
            "description": "Non-Repudiation & Integrity check signature for the requesting",
            "required": true,
            "schema": {
              "type": "string",
              "default": "YOUR_SIGNATURE"
            }
          },
          {
            "name": "X-PARTNER-ID",
            "in": "header",
            "description": "Brick's client ID",
            "required": true,
            "schema": {
              "type": "string",
              "default": "YOUR_PARTNER_ID"
            }
          },
          {
            "name": "X-EXTERNAL-ID",
            "in": "header",
            "description": "Unique external identifier for the API request that can be found on Brick Dashboard Credentials",
            "required": true,
            "schema": {
              "type": "string",
              "default": "external-id-unique-per-request"
            }
          },
          {
            "name": "CHANNEL-ID",
            "in": "header",
            "description": "Brick's channel id",
            "required": true,
            "schema": {
              "type": "string",
              "default": "A0"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "partnerReferenceNo",
                  "validityPeriod"
                ],
                "properties": {
                  "partnerReferenceNo": {
                    "type": "string",
                    "description": "Unique reference number provided by the partner to identify the transaction. Maximum length of 25 characters)",
                    "default": "2025111500000000000001"
                  },
                  "amount": {
                    "properties": {
                      "value": {
                        "type": "string",
                        "description": "Amount to be processed, represented as a string with two decimal places (e.g., \"12345678.00\")",
                        "default": "10000.00"
                      },
                      "currency": {
                        "type": "string",
                        "description": "Currency of the transaction amount. Set as default to \"IDR\" (Indonesian Rupiah).",
                        "default": "IDR"
                      }
                    },
                    "required": [
                      "value",
                      "currency"
                    ],
                    "type": "object"
                  },
                  "validityPeriod": {
                    "type": "string",
                    "description": "Minimum 600 seconds (10 minutes), maximum 86,400 seconds (24 hours) from the creation time. If not set, the default value will be 86,400 seconds (24 hours)",
                    "default": "600"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Success Response": {
                    "value": "{\n    \"responseCode\": \"2004700\",\n    \"responseMessage\": \"Successful\",\n    \"referenceNo\": \"QR_429529d44e1f4e22a167a8b0597f1226\",\n    \"partnerReferenceNo\": \"87457990831641724058\",\n    \"qrContent\": \"00020101021226640015ID.OTTOCASH.WWW01189360081110020080020212OP1D012981900303UME51440014ID.CO.QR Code.WWW0215ID10243527937710303UME520499995303360540410005802ID5910TULOBRICK16015JL KARYA BHAKTI61057812162720120BILL14155627188675030521SP17395233874158600180703A019612OP1D012981906304A393\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "responseCode": {
                      "type": "string",
                      "example": "2004700"
                    },
                    "responseMessage": {
                      "type": "string",
                      "example": "Successful"
                    },
                    "referenceNo": {
                      "type": "string",
                      "example": "QR_429529d44e1f4e22a167a8b0597f1226"
                    },
                    "partnerReferenceNo": {
                      "type": "string",
                      "example": "87457990831641724058"
                    },
                    "qrContent": {
                      "type": "string",
                      "example": "00020101021226640015ID.OTTOCASH.WWW01189360081110020080020212OP1D012981900303UME51440014ID.CO.QR Code.WWW0215ID10243527937710303UME520499995303360540410005802ID5910TULOBRICK16015JL KARYA BHAKTI61057812162720120BILL14155627188675030521SP17395233874158600180703A019612OP1D012981906304A393"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Invalid Payload": {
                    "value": "{\n  \"responseCode\": \"4004702\",\n  \"responseMessage\": \"Invalid Mandatory Field\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "responseCode": {
                      "type": "string",
                      "example": "4004702"
                    },
                    "responseMessage": {
                      "type": "string",
                      "example": "Invalid Mandatory Field"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "Unauthorized Authorization": {
                    "value": "{\n  \"responseCode\": \"4014700\",\n  \"responseMessage\": \"Unauthorized Authorization\"\n}"
                  },
                  "Unauthorized Signature": {
                    "value": "{\n  \"responseCode\": \"4014700\",\n  \"responseMessage\": \"Unauthorized X-SIGNATURE\"\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Unauthorized Authorization",
                      "type": "object",
                      "properties": {
                        "responseCode": {
                          "type": "string",
                          "example": "4014700"
                        },
                        "responseMessage": {
                          "type": "string",
                          "example": "Unauthorized Authorization"
                        }
                      }
                    },
                    {
                      "title": "Unauthorized Signature",
                      "type": "object",
                      "properties": {
                        "responseCode": {
                          "type": "string",
                          "example": "4014700"
                        },
                        "responseMessage": {
                          "type": "string",
                          "example": "Unauthorized X-SIGNATURE"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "409",
            "content": {
              "application/json": {
                "examples": {
                  "Same x-external-id on the Same Day": {
                    "value": "{\n  \"responseCode\": \"4094700\",\n  \"responseMessage\": \"Conflict\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "responseCode": {
                      "type": "string",
                      "example": "4094700"
                    },
                    "responseMessage": {
                      "type": "string",
                      "example": "Conflict"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "QR Code SNAP"
        ],
        "x-docs-page": "/brickcollect-acceptance/qris/snap/generate-dynamic-qris-snap",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [],
        "x-brick-endpoint-base-path": "/v2/payments",
        "x-brick-original-path": "/acceptance/1.0/qr/qr-mpm-generate"
      }
    },
    "/v2/payments/acceptance/1.0/qr/qr-mpm-query": {
      "post": {
        "summary": "Status for Dynamic QR Code",
        "description": "Query the latest payment status for a dynamic QRIS SNAP transaction. Use this endpoint when your system needs to confirm a QR MPM payment state using SNAP headers, timestamps, signatures, and original partner reference data. The response helps reconcile pending, successful, failed, or expired QR transactions in SNAP-based integrations.",
        "operationId": "status-for-dynamic-qris-snap",
        "parameters": [
          {
            "name": "Content-Type",
            "in": "header",
            "description": "String represents indicate the media type of the resource",
            "required": true,
            "schema": {
              "type": "string",
              "default": "application/json"
            }
          },
          {
            "name": "X-CLIENT-KEY",
            "in": "header",
            "description": "Client’s client_id",
            "required": true,
            "schema": {
              "type": "string",
              "default": "YOUR_CLIENT_ID"
            }
          },
          {
            "name": "X-TIMESTAMP",
            "in": "header",
            "description": "Client's current local time in yyyy-MM- ddTHH:mm:ss.SSSTZD format",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "default": "2024-11-15T18:44:33+07:00"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "One time access-token generated using the auth token API",
            "required": true,
            "schema": {
              "type": "string",
              "default": "Bearer YOUR_ACCESS_TOKEN"
            }
          },
          {
            "name": "X-SIGNATURE",
            "in": "header",
            "description": "Non-Repudiation & Integrity check signature for the requesting",
            "required": true,
            "schema": {
              "type": "string",
              "default": "YOUR_SIGNATURE"
            }
          },
          {
            "name": "X-PARTNER-ID",
            "in": "header",
            "description": "Brick's client ID",
            "required": true,
            "schema": {
              "type": "string",
              "default": "YOUR_PARTNER_ID"
            }
          },
          {
            "name": "X-EXTERNAL-ID",
            "in": "header",
            "description": "Unique external identifier for the API request that can be found on Brick Dashboard Credentials",
            "required": true,
            "schema": {
              "type": "string",
              "default": "external-id-unique-per-request"
            }
          },
          {
            "name": "CHANNEL-ID",
            "in": "header",
            "description": "Brick's channel id",
            "required": true,
            "schema": {
              "type": "string",
              "default": "A0"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "originalReferenceNo": {
                    "type": "string",
                    "description": "Unique identifier for the original transaction. e.g. QR_75ae1b56c40449ecbc42010e3d2589cc",
                    "default": "QR_75ae1b56c40449ecbc42010e3d2589cc"
                  },
                  "originalPartnerReferenceNo": {
                    "type": "string",
                    "description": "Unique identifier for the original transaction assigned by the partner. e.g. 20241115000000189723",
                    "default": "20241115000000189723"
                  },
                  "serviceCode": {
                    "type": "string",
                    "description": "Must be set to '51'",
                    "default": "51"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Success Response": {
                    "value": "{\n  \"responseCode\": \"2005100\",\n  \"responseMessage\": \"Successful\",\n  \"originalReferenceNo\": \"QR_75ae1b56c40449ecbc42010e3d2589cc\",\n  \"originalPartnerReferenceNo\": \"20241115000000189723\",\n  \"serviceCode\": \"51\",\n  \"latestTransactionStatus\": \"06\",\n  \"transactionStatusDesc\": \"EXPIRED\",\n  \"amount\": {\n    \"value\": \"10000.00\",\n    \"currency\": \"IDR\"\n  }\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "responseCode": {
                      "type": "string",
                      "example": "2005100"
                    },
                    "responseMessage": {
                      "type": "string",
                      "example": "Successful"
                    },
                    "originalReferenceNo": {
                      "type": "string",
                      "example": "QR_75ae1b56c40449ecbc42010e3d2589cc"
                    },
                    "originalPartnerReferenceNo": {
                      "type": "string",
                      "example": "20241115000000189723"
                    },
                    "serviceCode": {
                      "type": "string",
                      "example": "51"
                    },
                    "latestTransactionStatus": {
                      "type": "string",
                      "example": "06"
                    },
                    "transactionStatusDesc": {
                      "type": "string",
                      "example": "EXPIRED"
                    },
                    "amount": {
                      "type": "object",
                      "properties": {
                        "value": {
                          "type": "string",
                          "example": "10000.00"
                        },
                        "currency": {
                          "type": "string",
                          "example": "IDR"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Invalid Mandatory Field": {
                    "value": "{\n  \"responseCode\": \"4005102\",\n  \"responseMessage\": \"Invalid Mandatory Field\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "responseCode": {
                      "type": "string",
                      "example": "4005102"
                    },
                    "responseMessage": {
                      "type": "string",
                      "example": "Invalid Mandatory Field"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Transaction Not Found": {
                    "value": "{\n  \"responseCode\": \"4045101\",\n  \"responseMessage\": \"Transaction Not Found\",\n  \"originalReferenceNo\": \"QR_75ae1b56c40449ecbc42010e3d2589ccx\",\n  \"originalPartnerReferenceNo\": \"20241115000000189723\",\n  \"serviceCode\": \"51\",\n  \"latestTransactionStatus\": \"07\",\n  \"transactionStatusDesc\": \"NOT_FOUND\"\n}\n"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "responseCode": {
                      "type": "string",
                      "example": "4045101"
                    },
                    "responseMessage": {
                      "type": "string",
                      "example": "Transaction Not Found"
                    },
                    "originalReferenceNo": {
                      "type": "string",
                      "example": "QR_75ae1b56c40449ecbc42010e3d2589ccx"
                    },
                    "originalPartnerReferenceNo": {
                      "type": "string",
                      "example": "20241115000000189723"
                    },
                    "serviceCode": {
                      "type": "string",
                      "example": "51"
                    },
                    "latestTransactionStatus": {
                      "type": "string",
                      "example": "07"
                    },
                    "transactionStatusDesc": {
                      "type": "string",
                      "example": "NOT_FOUND"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "QR Code SNAP"
        ],
        "x-docs-page": "/brickcollect-acceptance/qris/snap/dynamic-qris-status-snap",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [],
        "x-brick-endpoint-base-path": "/v2/payments",
        "x-brick-original-path": "/acceptance/1.0/qr/qr-mpm-query"
      }
    },
    "/v2/payments/gs/acceptance/ewallet": {
      "post": {
        "summary": "Create Ewallet Payment Link API",
        "description": "Create an Ewallet payment link or redirect URL for a customer payment. Use this endpoint when the payer should complete payment inside a supported Ewallet application or redirected checkout experience. Store the returned payment identifier and redirect URL, then confirm the final transaction state through callback or the Ewallet status endpoint.",
        "operationId": "create-payment-ewallet",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "amount",
                  "referenceId",
                  "ewalletCode",
                  "returnUrl"
                ],
                "properties": {
                  "amount": {
                    "type": "integer",
                    "description": "Amount that clients wants to transfer",
                    "default": 10000,
                    "format": "int32"
                  },
                  "referenceId": {
                    "type": "string",
                    "description": "A unique identifier for the payment transaction, generated by the client side. (Maximum length of 25 characters)",
                    "default": "Test-Sandbox-01"
                  },
                  "ewalletCode": {
                    "type": "string",
                    "description": "The code representing the Ewallet provider (e.g., \"DANA\" for the DANA Ewallet).",
                    "default": "DANA"
                  },
                  "returnUrl": {
                    "type": "string",
                    "description": "The URL to which the end-user will be redirected after completing the transaction.",
                    "default": "https://staging-app.onebrick.io"
                  }
                }
              },
              "examples": {
                "Request Example": {
                  "value": {
                    "amount": 10000,
                    "referenceId": "Test-Sandbox-01",
                    "ewalletCode": "DANA",
                    "returnUrl": "https://staging-app.onebrick.io"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Success Response": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"message\": \"We have successfully created Ewallet payment\",\n        \"id\": \"WA_6149a003a0cb4efcab067c342f499f8e\",\n        \"referenceId\": \"Test-Sandbox-01\",\n        \"amount\": \"10000\",\n        \"status\": \"pending\",\n        \"ewalletCode\": \"DANA\",\n        \"redirectUrl\": \"https://m.sandbox.dana.id/m/portal/cashier/checkout?bizNo=20240912111212800110166401001777756&timestamp=1726139689936&originSourcePlatform=IPG&mid=216620040016026395535&sign=IheVHgdUym9p11XLDZ0KqT1%2F5uKqqNjG%2B85CpmVL6LFaJwKPKoEzjTxm8bqg0Vl9CF8G1blf2YUxmNlqeNKvMUoaDh5K%2F50sEscp2fjjY3VnJU4rqiug57Lu1JLGVQ9H%2BL9ff3Kohfz4YEJ3v4kT0mJQZke%2F5Io0PytviPmaMUuOCA%2F9AmeSKg2UVEWbsZdYNbRioLChfAFivnY2Zbv70XQ8wBkOgF1KBnRqh6ONmzCcrSu9EmgoCldPEegZnpGsa0%2BR28W%2FwZ7ZKpi76bLV62Soeg4uQtRoKOcAA6iVhHZ8rmGSFjHGgnpr6C6fgberCfy3cBRlOoLhCE67e1L2tg%3D%3D&forceToH5=false\",\n        \"createdAt\": \"2024-09-12T18:14:49.000+07:00\",\n        \"expiredAt\": \"2024-09-12T19:15:49.817+07:00\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "example": "We have successfully created Ewallet payment"
                        },
                        "id": {
                          "type": "string",
                          "example": "WA_6149a003a0cb4efcab067c342f499f8e"
                        },
                        "referenceId": {
                          "type": "string",
                          "example": "Test-Sandbox-01"
                        },
                        "amount": {
                          "type": "string",
                          "example": "10000"
                        },
                        "status": {
                          "type": "string",
                          "example": "pending"
                        },
                        "ewalletCode": {
                          "type": "string",
                          "example": "DANA"
                        },
                        "redirectUrl": {
                          "type": "string",
                          "example": "https://m.sandbox.dana.id/m/portal/cashier/checkout?bizNo=20240912111212800110166401001777756&timestamp=1726139689936&originSourcePlatform=IPG&mid=216620040016026395535&sign=IheVHgdUym9p11XLDZ0KqT1%2F5uKqqNjG%2B85CpmVL6LFaJwKPKoEzjTxm8bqg0Vl9CF8G1blf2YUxmNlqeNKvMUoaDh5K%2F50sEscp2fjjY3VnJU4rqiug57Lu1JLGVQ9H%2BL9ff3Kohfz4YEJ3v4kT0mJQZke%2F5Io0PytviPmaMUuOCA%2F9AmeSKg2UVEWbsZdYNbRioLChfAFivnY2Zbv70XQ8wBkOgF1KBnRqh6ONmzCcrSu9EmgoCldPEegZnpGsa0%2BR28W%2FwZ7ZKpi76bLV62Soeg4uQtRoKOcAA6iVhHZ8rmGSFjHGgnpr6C6fgberCfy3cBRlOoLhCE67e1L2tg%3D%3D&forceToH5=false"
                        },
                        "createdAt": {
                          "type": "string",
                          "example": "2024-09-12T18:14:49.000+07:00"
                        },
                        "expiredAt": {
                          "type": "string",
                          "example": "2024-09-12T19:15:49.817+07:00"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "error": {}
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Amount Exceed Limit": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please use amount less than maximum transfer limit, ie:10.000.000\",\n        \"action\": \"Please make sure the amount you requested is in the range of Rp 10.000 to Rp 10.000.000\",\n        \"reason\": \"Your amount of transfer is above our maximum transfer amount\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  },
                  "Duplicated Reference ID": {
                    "value": "{\n    \"status\": 400,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_request\",\n        \"message\": \"Please make sure your External key (reference id) has never been used before\",\n        \"action\": \"Please make sure to always use unique reference ID in the parameter\",\n        \"reason\": \"Your external id (referenceId) has already been taken\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Amount Exceed Limit",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please use amount less than maximum transfer limit, ie:10.000.000"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please make sure the amount you requested is in the range of Rp 10.000 to Rp 10.000.000"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Your amount of transfer is above our maximum transfer amount"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    },
                    {
                      "title": "Duplicated Reference ID",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 400,
                          "default": 0
                        },
                        "error": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "example": "invalid_parameters_in_request"
                            },
                            "message": {
                              "type": "string",
                              "example": "Please make sure your External key (reference id) has never been used before"
                            },
                            "action": {
                              "type": "string",
                              "example": "Please make sure to always use unique reference ID in the parameter"
                            },
                            "reason": {
                              "type": "string",
                              "example": "Your external id (referenceId) has already been taken"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "data": {}
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "Public Token Invalid ": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"token_used_in_headers\",\n        \"message\": \"Please use live publicAccessToken in headers\",\n        \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n        \"reason\": \"publicAccessToken is used\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 401,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "token_used_in_headers"
                        },
                        "message": {
                          "type": "string",
                          "example": "Please use live publicAccessToken in headers"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                        },
                        "reason": {
                          "type": "string",
                          "example": "publicAccessToken is used"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Ewallet"
        ],
        "x-docs-page": "/brickcollect-acceptance/e-wallet/create-ewallet-payment-link",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/acceptance/ewallet"
      }
    },
    "/v2/payments/gs/acceptance/ewallet/{id}": {
      "get": {
        "summary": "Status Ewallet Payment API",
        "description": "Retrieve the latest status of an Ewallet payment transaction by Brick reference ID. Use this endpoint when callbacks are delayed, customer support needs confirmation, or your reconciliation process needs to resolve a payment link state. The response should be used to update internal order, invoice, or wallet funding records.",
        "operationId": "status-ewallet-payment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "A unique identifier for the payment transaction, generated by Brick. EX: WA_xxx",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Success Response - Pending": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"message\": \"We have successfully get status Ewallet\",\n        \"id\": \"WA_6149a003a0cb4efcab067c342f499f8e\",\n        \"referenceId\": \"Test-Sandbox-01\",\n        \"amount\": \"10000\",\n        \"status\": \"pending\",\n        \"ewalletCode\": \"DANA\",\n        \"redirectUrl\": \"https://m.sandbox.dana.id/m/portal/cashier/checkout?bizNo=20240912111212800110166401001777756&timestamp=1726139689936&originSourcePlatform=IPG&mid=216620040016026395535&sign=IheVHgdUym9p11XLDZ0KqT1%2F5uKqqNjG%2B85CpmVL6LFaJwKPKoEzjTxm8bqg0Vl9CF8G1blf2YUxmNlqeNKvMUoaDh5K%2F50sEscp2fjjY3VnJU4rqiug57Lu1JLGVQ9H%2BL9ff3Kohfz4YEJ3v4kT0mJQZke%2F5Io0PytviPmaMUuOCA%2F9AmeSKg2UVEWbsZdYNbRioLChfAFivnY2Zbv70XQ8wBkOgF1KBnRqh6ONmzCcrSu9EmgoCldPEegZnpGsa0%2BR28W%2FwZ7ZKpi76bLV62Soeg4uQtRoKOcAA6iVhHZ8rmGSFjHGgnpr6C6fgberCfy3cBRlOoLhCE67e1L2tg%3D%3D&forceToH5=false\",\n        \"expiredAt\": \"2024-09-12T19:15:49.817+07:00\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  },
                  "Success Response - Completed": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"message\": \"We have successfully get status Ewallet\",\n        \"id\": \"WA_85a356ed7a4d460c9033905a314f4b9f\",\n        \"referenceId\": \"Test-Sandbox-03\",\n        \"amount\": \"10000\",\n        \"status\": \"completed\",\n        \"ewalletCode\": \"DANA\",\n        \"redirectUrl\": \"https://m.sandbox.dana.id/m/portal/cashier/checkout?bizNo=20240913111212800110166428801774762&timestamp=1726198476396&originSourcePlatform=IPG&mid=216620040016026395535&sign=ae0XxUMldxGjS4oJDf3XuzWhx9fHYCz7Be%2BG8zUAWZAtc1axXlBSB4uzO%2FVX8IqvpIm5mZMCKwBWALPi8F2KHMpO566juhFvVxqpQ0%2B5v8w%2BdJngzMETKgcD6g6sY28V1sOR3BOy32CZQWxzRqVmvNX32Jdh5YHuuLepMnqdAWYPBcnTu6laj%2BcuHIEJoJXRX5n%2Fnp9UDQ6OBcE%2FX9CBKXmzIXGQ%2BDJWyO%2BBRZnoNmbzyUzhRvWOH13h3abmj7kDY33xpmwOiZoBAYNVq6TZnqbEXFQPPnTiV0NV7ry%2BCDOLbTMChcO0erurZZ%2FlJEltqIicp8WCIMcN%2BE5%2ForDKpQ%3D%3D&forceToH5=false\",\n        \"expiredAt\": \"2024-09-13T11:35:36.296+07:00\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"error\": null\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Success Response - Pending",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 200,
                          "default": 0
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "message": {
                              "type": "string",
                              "example": "We have successfully get status Ewallet"
                            },
                            "id": {
                              "type": "string",
                              "example": "WA_6149a003a0cb4efcab067c342f499f8e"
                            },
                            "referenceId": {
                              "type": "string",
                              "example": "Test-Sandbox-01"
                            },
                            "amount": {
                              "type": "string",
                              "example": "10000"
                            },
                            "status": {
                              "type": "string",
                              "example": "pending"
                            },
                            "ewalletCode": {
                              "type": "string",
                              "example": "DANA"
                            },
                            "redirectUrl": {
                              "type": "string",
                              "example": "https://m.sandbox.dana.id/m/portal/cashier/checkout?bizNo=20240912111212800110166401001777756&timestamp=1726139689936&originSourcePlatform=IPG&mid=216620040016026395535&sign=IheVHgdUym9p11XLDZ0KqT1%2F5uKqqNjG%2B85CpmVL6LFaJwKPKoEzjTxm8bqg0Vl9CF8G1blf2YUxmNlqeNKvMUoaDh5K%2F50sEscp2fjjY3VnJU4rqiug57Lu1JLGVQ9H%2BL9ff3Kohfz4YEJ3v4kT0mJQZke%2F5Io0PytviPmaMUuOCA%2F9AmeSKg2UVEWbsZdYNbRioLChfAFivnY2Zbv70XQ8wBkOgF1KBnRqh6ONmzCcrSu9EmgoCldPEegZnpGsa0%2BR28W%2FwZ7ZKpi76bLV62Soeg4uQtRoKOcAA6iVhHZ8rmGSFjHGgnpr6C6fgberCfy3cBRlOoLhCE67e1L2tg%3D%3D&forceToH5=false"
                            },
                            "expiredAt": {
                              "type": "string",
                              "example": "2024-09-12T19:15:49.817+07:00"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "error": {}
                      }
                    },
                    {
                      "title": "Success Response - Completed",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 200,
                          "default": 0
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "message": {
                              "type": "string",
                              "example": "We have successfully get status Ewallet"
                            },
                            "id": {
                              "type": "string",
                              "example": "WA_85a356ed7a4d460c9033905a314f4b9f"
                            },
                            "referenceId": {
                              "type": "string",
                              "example": "Test-Sandbox-03"
                            },
                            "amount": {
                              "type": "string",
                              "example": "10000"
                            },
                            "status": {
                              "type": "string",
                              "example": "completed"
                            },
                            "ewalletCode": {
                              "type": "string",
                              "example": "DANA"
                            },
                            "redirectUrl": {
                              "type": "string",
                              "example": "https://m.sandbox.dana.id/m/portal/cashier/checkout?bizNo=20240913111212800110166428801774762&timestamp=1726198476396&originSourcePlatform=IPG&mid=216620040016026395535&sign=ae0XxUMldxGjS4oJDf3XuzWhx9fHYCz7Be%2BG8zUAWZAtc1axXlBSB4uzO%2FVX8IqvpIm5mZMCKwBWALPi8F2KHMpO566juhFvVxqpQ0%2B5v8w%2BdJngzMETKgcD6g6sY28V1sOR3BOy32CZQWxzRqVmvNX32Jdh5YHuuLepMnqdAWYPBcnTu6laj%2BcuHIEJoJXRX5n%2Fnp9UDQ6OBcE%2FX9CBKXmzIXGQ%2BDJWyO%2BBRZnoNmbzyUzhRvWOH13h3abmj7kDY33xpmwOiZoBAYNVq6TZnqbEXFQPPnTiV0NV7ry%2BCDOLbTMChcO0erurZZ%2FlJEltqIicp8WCIMcN%2BE5%2ForDKpQ%3D%3D&forceToH5=false"
                            },
                            "expiredAt": {
                              "type": "string",
                              "example": "2024-09-13T11:35:36.296+07:00"
                            }
                          }
                        },
                        "metaData": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "example": "API"
                            },
                            "entity": {
                              "type": "string",
                              "example": "Payment"
                            }
                          }
                        },
                        "error": {}
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "examples": {
                  "Reference ID Not Found": {
                    "value": "{\n    \"status\": 401,\n    \"error\": {\n        \"code\": \"invalid_parameters_in_headers\",\n        \"message\": \"Transaction ID not found\",\n        \"action\": \"Please ensure that the transaction ID is correct\",\n        \"reason\": \"We did not find any transaction with such ID\"\n    },\n    \"metaData\": {\n        \"source\": \"API\",\n        \"entity\": \"Payment\"\n    },\n    \"data\": null\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 401,
                      "default": 0
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "invalid_parameters_in_headers"
                        },
                        "message": {
                          "type": "string",
                          "example": "Transaction ID not found"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please ensure that the transaction ID is correct"
                        },
                        "reason": {
                          "type": "string",
                          "example": "We did not find any transaction with such ID"
                        }
                      }
                    },
                    "metaData": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Payment"
                        }
                      }
                    },
                    "data": {}
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Ewallet"
        ],
        "x-docs-page": "/brickcollect-acceptance/e-wallet/status-ewallet-payment",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v2/payments/gs",
        "x-brick-original-path": "/acceptance/ewallet/{id}"
      }
    },
    "/v1/payments/checkout": {
      "post": {
        "summary": "Create Checkout Page Session",
        "description": "Create a hosted Brick Checkout Page session and receive a checkoutUrl that can be shared with customers. Use Checkout Page when you want Brick to host the payment experience across supported methods instead of building each payment UI yourself. The request defines amount, currency, customer details, expiry, and callback context for later reconciliation.",
        "operationId": "create-checkout-page-session",
        "parameters": [
          {
            "name": "publicAccessToken",
            "in": "header",
            "description": "Bearer <accessToken>`. check /getting-started/generate-public-access-token-jwt-token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "externalId",
                  "currency",
                  "description"
                ],
                "properties": {
                  "externalId": {
                    "type": "string",
                    "description": "Merchant-defined unique identifier for the checkout session"
                  },
                  "currency": {
                    "type": "string",
                    "description": "Transaction currency. Use `IDR` for current Receive Money flow."
                  },
                  "description": {
                    "type": "string",
                    "description": "Checkout label shown to the customer and used for reconciliation."
                  },
                  "amount": {
                    "type": "number",
                    "description": "Fixed payment amount. If omitted, the checkout may behave as an open-amount flow.",
                    "format": "double"
                  },
                  "type": {
                    "type": "string",
                    "description": "Payment type. The tested collection supports `qris` and `virtual_account`."
                  }
                }
              },
              "examples": {
                "Minimal body": {
                  "value": {
                    "externalId": "CO-1773723246580",
                    "currency": "IDR",
                    "description": "Gaming Voucher Free Amount"
                  }
                },
                "fixed amount": {
                  "value": {
                    "externalId": "CO-1773723246580",
                    "currency": "IDR",
                    "description": "Gaming Voucher",
                    "amount": 12012,
                    "type": "qris"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"status\": 200,\n  \"data\": {\n    \"id\": \"QyECa1OpjWJcyfzXOLT6HKCxAVoDzUs3\",\n    \"externalId\": \"CO-1773723246580\",\n    \"status\": \"CREATED\",\n    \"checkoutUrl\": \"https://sandbox-checkout.onebrick.io/aiU5tkLQZeZzXXdgwZUenOyGgTf41mKqyXv9XS96yB4QE9lze2wuMFhfPH4jMC2%2B\",\n    \"currency\": \"IDR\",\n    \"amount\": null,\n    \"type\": \"\",\n    \"createdAt\": \"2026-03-17T04:54:06Z\",\n    \"description\": \"Gaming Voucher Free Amount\"\n  },\n  \"errors\": null,\n  \"hashcode\": \"38d4b6cc3dd7a6cbb400f08c3bed1228\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "QyECa1OpjWJcyfzXOLT6HKCxAVoDzUs3"
                        },
                        "externalId": {
                          "type": "string",
                          "example": "CO-1773723246580"
                        },
                        "status": {
                          "type": "string",
                          "example": "CREATED"
                        },
                        "checkoutUrl": {
                          "type": "string",
                          "example": "https://sandbox-checkout.onebrick.io/aiU5tkLQZeZzXXdgwZUenOyGgTf41mKqyXv9XS96yB4QE9lze2wuMFhfPH4jMC2%2B"
                        },
                        "currency": {
                          "type": "string",
                          "example": "IDR"
                        },
                        "amount": {},
                        "type": {
                          "type": "string",
                          "example": ""
                        },
                        "createdAt": {
                          "type": "string",
                          "example": "2026-03-17T04:54:06Z"
                        },
                        "description": {
                          "type": "string",
                          "example": "Gaming Voucher Free Amount"
                        }
                      }
                    },
                    "errors": {},
                    "hashcode": {
                      "type": "string",
                      "example": "38d4b6cc3dd7a6cbb400f08c3bed1228"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {}
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Checkout Page"
        ],
        "x-docs-page": "/brickcollect-acceptance/checkout-page/create-checkout-page-session",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v1/payments",
        "x-brick-original-path": "/checkout"
      }
    },
    "/v1/payments/checkout/status": {
      "get": {
        "summary": "Checkout Status",
        "description": "Retrieve the latest status of a hosted Checkout Page session. Use this endpoint to reconcile payment links, order payments, or customer support cases when you have the checkout session reference. The response confirms whether the session is pending, paid, expired, failed, or otherwise ready for follow-up in your system.",
        "operationId": "checkout-status",
        "parameters": [
          {
            "name": "checkoutId",
            "in": "query",
            "description": "Brick-generated checkout identifier returned from POST /v1/payments/checkout.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "externalId",
            "in": "query",
            "description": "checkout externalId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Created": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"id\": \"7FxYAqSFSdEhjm0oNeHxe1rgYZuSqXtC\",\n        \"status\": \"CREATED\",\n        \"expiredAt\": \"2026-04-16T14:36:06+07:00\"\n    },\n    \"errors\": null,\n    \"hashcode\": \"5e590c76269fb229d366fa2999f9e386\"\n}"
                  },
                  "Completed": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"id\": \"HghbCHpb7cxdaOEZAQEHM5VOLC0zi6zp\",\n        \"status\": \"COMPLETED\",\n        \"expiredAt\": \"2026-04-16T15:00:37+07:00\",\n        \"payment\": {\n            \"transactionId\": \"WA_42a086804ad34987b2f39c55df42a337\",\n            \"type\": \"EWALLET\",\n            \"externalId\": \"COtestnih-13-004-36\",\n            \"amount\": 12012,\n            \"status\": \"PAID\",\n            \"createdAt\": \"2026-04-16T14:45:43+07:00\",\n            \"expiredAt\": \"2026-04-16T15:46:42+07:00\",\n            \"paidAt\": \"2026-04-16T14:46:02+07:00\"\n        }\n    },\n    \"errors\": null,\n    \"hashcode\": \"9cd33853779a305657421b03f569ac0c\"\n}"
                  },
                  "Expired": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"id\": \"7FxYAqSFSdEhjm0oNeHxe1rgYZuSqXtC\",\n        \"status\": \"EXPIRED\",\n        \"expiredAt\": \"2026-04-16T14:36:06+07:00\"\n    },\n    \"errors\": null,\n    \"hashcode\": \"c77b91ef1f50acdb43a69ac69d438d0b\"\n}"
                  },
                  "Opened": {
                    "value": "{\n    \"status\": 200,\n    \"data\": {\n        \"id\": \"iEOroy1CyeQlg8GImsE2XXpzYKYmacl6\",\n        \"status\": \"OPENED\",\n        \"expiredAt\": \"2026-04-16T15:25:56+07:00\"\n    },\n    \"errors\": null,\n    \"hashcode\": \"111db3f243bd3da241b7f5aba7fefcef\"\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "title": "Created",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 200,
                          "default": 0
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "7FxYAqSFSdEhjm0oNeHxe1rgYZuSqXtC"
                            },
                            "status": {
                              "type": "string",
                              "example": "CREATED"
                            },
                            "expiredAt": {
                              "type": "string",
                              "example": "2026-04-16T14:36:06+07:00"
                            }
                          }
                        },
                        "errors": {},
                        "hashcode": {
                          "type": "string",
                          "example": "5e590c76269fb229d366fa2999f9e386"
                        }
                      }
                    },
                    {
                      "title": "Completed",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 200,
                          "default": 0
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "HghbCHpb7cxdaOEZAQEHM5VOLC0zi6zp"
                            },
                            "status": {
                              "type": "string",
                              "example": "COMPLETED"
                            },
                            "expiredAt": {
                              "type": "string",
                              "example": "2026-04-16T15:00:37+07:00"
                            },
                            "payment": {
                              "type": "object",
                              "properties": {
                                "transactionId": {
                                  "type": "string",
                                  "example": "WA_42a086804ad34987b2f39c55df42a337"
                                },
                                "type": {
                                  "type": "string",
                                  "example": "EWALLET"
                                },
                                "externalId": {
                                  "type": "string",
                                  "example": "COtestnih-13-004-36"
                                },
                                "amount": {
                                  "type": "integer",
                                  "example": 12012,
                                  "default": 0
                                },
                                "status": {
                                  "type": "string",
                                  "example": "PAID"
                                },
                                "createdAt": {
                                  "type": "string",
                                  "example": "2026-04-16T14:45:43+07:00"
                                },
                                "expiredAt": {
                                  "type": "string",
                                  "example": "2026-04-16T15:46:42+07:00"
                                },
                                "paidAt": {
                                  "type": "string",
                                  "example": "2026-04-16T14:46:02+07:00"
                                }
                              }
                            }
                          }
                        },
                        "errors": {},
                        "hashcode": {
                          "type": "string",
                          "example": "9cd33853779a305657421b03f569ac0c"
                        }
                      }
                    },
                    {
                      "title": "Expired",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 200,
                          "default": 0
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "7FxYAqSFSdEhjm0oNeHxe1rgYZuSqXtC"
                            },
                            "status": {
                              "type": "string",
                              "example": "EXPIRED"
                            },
                            "expiredAt": {
                              "type": "string",
                              "example": "2026-04-16T14:36:06+07:00"
                            }
                          }
                        },
                        "errors": {},
                        "hashcode": {
                          "type": "string",
                          "example": "c77b91ef1f50acdb43a69ac69d438d0b"
                        }
                      }
                    },
                    {
                      "title": "Opened",
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "integer",
                          "example": 200,
                          "default": 0
                        },
                        "data": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "iEOroy1CyeQlg8GImsE2XXpzYKYmacl6"
                            },
                            "status": {
                              "type": "string",
                              "example": "OPENED"
                            },
                            "expiredAt": {
                              "type": "string",
                              "example": "2026-04-16T15:25:56+07:00"
                            }
                          }
                        },
                        "errors": {},
                        "hashcode": {
                          "type": "string",
                          "example": "111db3f243bd3da241b7f5aba7fefcef"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "text/plain": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"status\": 401,\n  \"data\": null,\n  \"errors\": {\n    \"code\": \"token_used_in_headers\",\n    \"message\": \"Please use live publicAccessToken in headers\",\n    \"action\": \"Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team\",\n    \"reason\": \"publicAccessToken is used\"\n  },\n  \"hashcode\": \"7e5d2eee019ba728fa516ff2f05d599e\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 401,
                      "default": 0
                    },
                    "data": {},
                    "errors": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "token_used_in_headers"
                        },
                        "message": {
                          "type": "string",
                          "example": "Please use live publicAccessToken in headers"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please generate valid public access token via /v2/payments/auth/token APIs or contact to Brick sales team"
                        },
                        "reason": {
                          "type": "string",
                          "example": "publicAccessToken is used"
                        }
                      }
                    },
                    "hashcode": {
                      "type": "string",
                      "example": "7e5d2eee019ba728fa516ff2f05d599e"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 404,\n    \"data\": null,\n    \"errors\": {\n        \"code\": \"wrong_parameters_in_request\",\n        \"message\": \"Please use the correct parameters in your request\",\n        \"action\": \"Check your request for a mistake or missing parameter in your request\",\n        \"reason\": \"Checkout not found\"\n    },\n    \"hashcode\": \"1b98c4593c1a65f7b29ba03f80e80092\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 404,
                      "default": 0
                    },
                    "data": {},
                    "errors": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "wrong_parameters_in_request"
                        },
                        "message": {
                          "type": "string",
                          "example": "Please use the correct parameters in your request"
                        },
                        "action": {
                          "type": "string",
                          "example": "Check your request for a mistake or missing parameter in your request"
                        },
                        "reason": {
                          "type": "string",
                          "example": "Checkout not found"
                        }
                      }
                    },
                    "hashcode": {
                      "type": "string",
                      "example": "1b98c4593c1a65f7b29ba03f80e80092"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "Checkout Page"
        ],
        "x-docs-page": "/brickcollect-acceptance/checkout-page/checkout-status",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": "/v1/payments",
        "x-brick-original-path": "/checkout/status"
      }
    },
    "/v2/ocr/bank-statement/extract": {
      "get": {
        "summary": "Extract Bank Statement OCR",
        "description": "Submit a supported bank statement file to Brick OCR and retrieve structured extraction results for Financial Insight workflows. Use this endpoint when your product needs transaction data from uploaded PDF statements without manual data entry. The response can support underwriting, reconciliation, affordability checks, or financial analysis after you validate file type and user consent.",
        "operationId": "extract-bank-statement-ocr",
        "parameters": [
          {
            "name": "publicAccessToken",
            "in": "header",
            "description": "Bearer token for authentication. Format: Bearer <token>",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "files"
                ],
                "properties": {
                  "files": {
                    "type": "string",
                    "description": "Bank statement file in PDF format only, maximum size 5 MB per file.",
                    "format": "binary"
                  },
                  "email": {
                    "type": "string",
                    "description": "Email destination to receive OCR result notification."
                  },
                  "client_request_id": {
                    "type": "string",
                    "description": "Client-generated ID for idempotency / tracing. Recommended to prevent duplicate processing."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"status\": 200,\n    \"error\": null,\n    \"message\": \"\",\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Experience\"\n    },\n    \"data\": {\n        \"transactions\": [\n            {\n                \"transaction_id\": \"{{transaction_id}}\",\n                \"third_party_transaction_id\": \"\",\n                \"status\": \"PROCESSING\",\n                \"filename\": \"{{filename}}.pdf\"\n            }\n        ]\n    }\n}"
                  },
                  "Complete": {
                    "value": "{\n  \"status\": 200,\n  \"error\": null,\n  \"message\": \"\",\n  \"metadata\": {\n    \"source\": \"API\",\n    \"entity\": \"Experience\"\n  },\n  \"data\": {\n    \"transactions\": [\n      {\n        \"transaction_id\": \"{{transaction_id}}\",\n        \"third_party_transaction_id\": \"\",\n        \"status\": \"COMPLETE\",\n        \"filename\": \"filename.pdf\"\n      }\n    ]\n  }\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200,
                      "default": 0
                    },
                    "error": {},
                    "message": {
                      "type": "string",
                      "example": ""
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Experience"
                        }
                      }
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "transactions": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "transaction_id": {
                                "type": "string",
                                "example": "{{transaction_id}}"
                              },
                              "third_party_transaction_id": {
                                "type": "string",
                                "example": ""
                              },
                              "status": {
                                "type": "string",
                                "example": "PROCESSING"
                              },
                              "filename": {
                                "type": "string",
                                "example": "{{filename}}.pdf"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Missing Files": {
                    "value": "{\n    \"status\": 400,\n    \"data\": null,\n    \"error\": {\n        \"code\": \"INVALID_REQUEST\",\n        \"message\": \"Files are required\",\n        \"action\": \"Please provide at least one file.\",\n        \"reason\": \"No files found in form\"\n    },\n    \"metadata\": {\n        \"source\": \"API\",\n        \"entity\": \"Experience\"\n    }\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 400,
                      "default": 0
                    },
                    "data": {},
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "example": "INVALID_REQUEST"
                        },
                        "message": {
                          "type": "string",
                          "example": "Files are required"
                        },
                        "action": {
                          "type": "string",
                          "example": "Please provide at least one file."
                        },
                        "reason": {
                          "type": "string",
                          "example": "No files found in form"
                        }
                      }
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": "string",
                          "example": "API"
                        },
                        "entity": {
                          "type": "string",
                          "example": "Experience"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false,
        "tags": [
          "OCR Bank Statement"
        ],
        "x-docs-page": "/brickdata/ocr-bank-statement/extract-bank-statement-ocr",
        "x-zudoku-playground-enabled": true,
        "servers": [
          {
            "url": "https://sandbox.onebrick.io",
            "description": "Sandbox Brick API"
          },
          {
            "url": "https://api.onebrick.io",
            "description": "Production Brick API"
          }
        ],
        "security": [
          {
            "sec0": []
          }
        ],
        "x-brick-endpoint-base-path": ""
      }
    }
  },
  "tags": [
    {
      "name": "Authentication",
      "description": "Create and manage the access token required by Brick API requests. Start here before testing payment, disbursement, QRIS, Virtual Account, Checkout Page, OCR, or account validation endpoints in sandbox and production."
    },
    {
      "name": "B2C Subaccount",
      "description": "Manage B2C client subaccounts, public key setup, and API key rotation for multi-tenant Brick integrations. These endpoints help platforms isolate client credentials and operate subaccounts under a primary Brick workspace."
    },
    {
      "name": "BIFAST Disbursement",
      "description": "Create real-time BI-FAST bank transfers through Brick Send Money. Use this tag when you need faster payout rails, recipient bank details, sender information, reference IDs, callbacks, and status tracking."
    },
    {
      "name": "Balance",
      "description": "Check available Brick balance before creating disbursements, processing payouts, or reconciling operational funds. Balance checks help finance and product systems prevent insufficient-fund failures."
    },
    {
      "name": "Bank Account Validation",
      "description": "Verify Indonesian bank account details before storing beneficiaries or initiating payouts. Account validation reduces failed transfers, mistyped account numbers, and operational reconciliation issues."
    },
    {
      "name": "Checkout Page",
      "description": "Create and monitor hosted Brick Checkout Page sessions. Checkout Page is useful when you want a shareable payment link or hosted payment page without building every payment method UI yourself."
    },
    {
      "name": "Disbursement",
      "description": "Validate recipients and retrieve disbursement status for Brick Send Money workflows. Use these endpoints with Regular or BI-FAST payouts to reconcile by Brick disbursement ID or your own reference ID."
    },
    {
      "name": "Ewallet",
      "description": "Create Ewallet payment redirect links and check transaction status. Use these endpoints when customers pay through supported Ewallet apps and your system needs a redirect URL plus reconciliation status."
    },
    {
      "name": "Ledger",
      "description": "Retrieve transaction ledger records for finance reconciliation, operational review, and payout history. Ledger data helps match Brick transactions with internal orders, settlement reports, and accounting records."
    },
    {
      "name": "OCR Bank Statement",
      "description": "Submit bank statement files to Brick OCR and retrieve extracted financial data. This endpoint supports Financial Insight workflows that need structured transaction data from uploaded statements."
    },
    {
      "name": "QR Code Dynamic",
      "description": "Create, test, and check dynamic QRIS QR Codes for customer payments. Dynamic QR Codes are generated per transaction and should be reconciled through callbacks or status inquiry."
    },
    {
      "name": "QR Code SNAP",
      "description": "Create and query QRIS payments using SNAP-compatible endpoints and headers. Use these endpoints when your integration follows Indonesian SNAP standards for access tokens, signatures, timestamps, and QR MPM flows."
    },
    {
      "name": "QR Code Static",
      "description": "Retrieve static QRIS merchant data and check static QR Code payment status. Static QR Codes are useful for merchant-presented payment flows where the QR identity is reused."
    },
    {
      "name": "Regular Disbursement",
      "description": "Create standard Brick Send Money payouts to bank accounts or supported Ewallet destinations. Use Regular Disbursement when real-time BI-FAST routing is not required or unavailable."
    },
    {
      "name": "Topup",
      "description": "Review available top-up options and top-up history for funding Brick balance. These endpoints help operations teams prepare funds before running disbursement workflows."
    },
    {
      "name": "Transfer Proof",
      "description": "Download proof of transfer documents for completed disbursements. Use this endpoint for customer support, finance evidence, audit trails, and payout confirmation workflows."
    },
    {
      "name": "Virtual Account Open VA",
      "description": "Generate and monitor reusable Open VA payments. Use these endpoints when customers can transfer flexible amounts to the same virtual account identifier and your system needs Open VA status reconciliation.",
      "x-displayName": "Open VA"
    },
    {
      "name": "Virtual Account Close VA",
      "description": "Generate, monitor, and simulate fixed-amount Close VA payments. Use these endpoints for order or invoice flows that require exact amounts, expiry windows, and Close VA payment status checks.",
      "x-displayName": "Close VA"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Authentication",
      "tags": [
        "Authentication"
      ]
    },
    {
      "name": "Send Money",
      "tags": [
        "Topup",
        "Balance",
        "Disbursement",
        "BIFAST Disbursement",
        "Regular Disbursement",
        "Ledger",
        "Transfer Proof"
      ]
    },
    {
      "name": "Receive Money",
      "tags": [
        "Checkout Page",
        "Ewallet",
        "QR Code Dynamic",
        "QR Code Static",
        "QR Code SNAP",
        "Virtual Account Open VA",
        "Virtual Account Close VA"
      ]
    },
    {
      "name": "Financial Insight",
      "tags": [
        "Bank Account Validation",
        "OCR Bank Statement"
      ]
    },
    {
      "name": "Workspace",
      "tags": [
        "B2C Subaccount"
      ]
    }
  ]
}
