{"schemaVersion":"1.0","sourceCommit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca","sourceVisibility":"private","article":{"id":"api-mansoq-odoo-be-paymentmethodlineviewset-ad3c51c6","title":"Payment Method Line API reference · mansoq-odoo-be","summary":"Static source contract for Payment Method Line: 2 declared or inherited operation mappings, schema/field evidence and authorization/refusal references. Deployment and behavioral review remain explicit.","module":"Billing","roles":["IT administrator","Developer","Integration engineer"],"facilities":["All configured facility types"],"kind":"reference","minutes":3,"prerequisites":["Use the API contract from the installed deployment and an authorized synthetic test environment.","Confirm facility/organization scope, action permissions and optional app enablement.","This reference is static source evidence; complete payload, authorization, failure and end-to-end review remains recorded as pending."],"steps":[],"sections":[{"title":"Declared route and availability","body":"This resource is declared in **mansoq-odoo-be** at `/api/{installed_plugin_prefix}/payment-method-line/`. plugin/local mount; actual prefix and enablement require deployment verification A registered path and an indexed handler do not prove deployment availability, user permission or production readiness.\n\nViewSet for fetching payment method lines from Odoo.\n\nPayment method lines represent available payment sources for Care of Accounts\n(charity, sponsor, fund payments on behalf of patients).\n\nUsage:\n    GET /api/v1/odoo/payment-method-line/\n    GET /api/v1/odoo/payment-method-line/?journal_type=credit"},{"title":"Operation map","body":"| Method | Path | Action | Evidence |\n| --- | --- | --- | --- |\n| GET | `/api/{installed_plugin_prefix}/payment-method-line/` | list | declared/inherited method |\n| GET | `/api/{installed_plugin_prefix}/payment-method-line/{external_id}/` | retrieve | declared/inherited method |"},{"title":"list · GET","body":"List payment method lines from Odoo filtered by journal type.\n\nQuery Parameters:\n    journal_type (str): The care connector code to filter by.\n                      Default: 'credit' for Care of Accounts.\n\nReturns:\n    List of payment method lines with id, name, code, journal_id, journal_name\n\n**GET /api/{installed_plugin_prefix}/payment-method-line/** — action `list`. static contract extracted; runtime/permission/payload behavior review pending.\n\nPath and deployment-context parameters:\n\n| Location | Parameter | Type | Required |\n| --- | --- | --- | --- |\n| deployment mount | installed_plugin_prefix | deployment-selected mount prefix | true |\n\nDirectly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):\n\n| Location | Field | Declared/inferred read type | Requiredness evidence |\n| --- | --- | --- | --- |\n| query | `journal_type` | not declared at read site | not established |\n\n**Authorization:** no literal permission name was resolved in the bounded handler/helper traversal. Authentication, inherited policies, object/facility scoping and middleware still require review; this does not mean public access.\n\n**Declared refusal/error evidence:** ValidationError (dynamic detail; inspect source)."},{"title":"retrieve · GET","body":"Retrieve a specific payment method line by ID.\n\nPath Parameters:\n    pk (int): The ID of the payment method line\n\nReturns:\n    Payment method line details\n\n**GET /api/{installed_plugin_prefix}/payment-method-line/{external_id}/** — action `retrieve`. static contract extracted; runtime/permission/payload behavior review pending.\n\nPath and deployment-context parameters:\n\n| Location | Parameter | Type | Required |\n| --- | --- | --- | --- |\n| deployment mount | installed_plugin_prefix | deployment-selected mount prefix | true |\n| path | external_id | router lookup string; semantic ID validation requires handler/schema review | true |\n\n**Authorization:** no literal permission name was resolved in the bounded handler/helper traversal. Authentication, inherited policies, object/facility scoping and middleware still require review; this does not mean public access.\n\n**Declared refusal/error evidence:** ValidationError (dynamic detail; inspect source)."},{"title":"Integration review checklist","body":"Confirm the installed route and full schema; review authentication, organization/facility scoping, all accepted fields, value-state and date/time semantics, idempotency, pagination, response/exception branches and the allowed correction/reversal workflow. Test positive and negative cases with synthetic data. This source reference does not establish external certification or replace an illustrated user procedure."}],"troubleshooting":[{"problem":"A declared route is unavailable or a request is rejected","solution":"Compare the installed revision, actual API schema, optional plugin mount, HTTP-method restrictions and recorded validation/permission evidence. Do not bypass a refusal or send a production transaction to test documentation."}],"sources":[{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/urls.py","line":15,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":9,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":31,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-core/mansoq/emr/api/viewsets/base.py","line":322,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":21,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":68,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"}],"related":["it-api-contract","it-api-auth","security-rcm-roles"],"verification":"Static API contract — behavior review pending","version":"f6e9f05f76d4","apiReferenceIds":["backend-resource-bae36e89ad3c51c6","backend-resource-bae36e89ad3c51c6:GET:list","backend-resource-bae36e89ad3c51c6:GET:retrieve"]},"backend":{"resources":[{"id":"backend-resource-bae36e89ad3c51c6","localPrefix":"payment-method-line","viewset":"PaymentMethodLineViewSet","classId":"repositories/platform/mansoq-odoo-be:mansoq_odoo.resources.payment_method_line.viewset.PaymentMethodLineViewSet","basename":"payment-method-line","source":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/urls.py","line":15,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"conditions":[],"repository":"repositories/platform/mansoq-odoo-be","classSource":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":9,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"description":"ViewSet for fetching payment method lines from Odoo.\n\nPayment method lines represent available payment sources for Care of Accounts\n(charity, sponsor, fund payments on behalf of patients).\n\nUsage:\n    GET /api/v1/odoo/payment-method-line/\n    GET /api/v1/odoo/payment-method-line/?journal_type=credit","path":"/api/{installed_plugin_prefix}/payment-method-line/","mountStatus":"plugin/local mount; actual prefix and enablement require deployment verification","operationIds":["backend-resource-bae36e89ad3c51c6:GET:list","backend-resource-bae36e89ad3c51c6:GET:retrieve"],"unresolvedViewset":false,"reviewStatus":"registered resource enumerated; behavioral review pending"}],"operations":[{"id":"backend-resource-bae36e89ad3c51c6:GET:list","resourceId":"backend-resource-bae36e89ad3c51c6","repository":"repositories/platform/mansoq-odoo-be","boundary":"optional-plugin/local-service","method":"GET","path":"/api/{installed_plugin_prefix}/payment-method-line/","declaredPattern":"/api/{installed_plugin_prefix}/payment-method-line/","action":"list","viewset":"PaymentMethodLineViewSet","classId":"repositories/platform/mansoq-odoo-be:mansoq_odoo.resources.payment_method_line.viewset.PaymentMethodLineViewSet","detail":false,"allowedByDeclaredHttpMethods":true,"mountStatus":"plugin/local mount; actual prefix and enablement require deployment verification","routeEvidence":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/urls.py","line":15,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"handlerSource":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":31,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"registrationConditions":[],"evidenceKind":"declared/inherited method","methodEvidenceIds":["repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py:31:list","repositories/platform/mansoq-core/mansoq/emr/api/viewsets/base.py:322:get_queryset","repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py:21:_build_query_params"],"schemaIds":{},"classPermissionEvidence":[],"filterEvidence":[],"reviewStatus":"static contract extracted; runtime/permission/payload behavior review pending","pathParameters":[{"name":"installed_plugin_prefix","in":"deployment mount","type":"deployment-selected mount prefix","required":true,"source":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/urls.py","line":15,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"}}]},{"id":"backend-resource-bae36e89ad3c51c6:GET:retrieve","resourceId":"backend-resource-bae36e89ad3c51c6","repository":"repositories/platform/mansoq-odoo-be","boundary":"optional-plugin/local-service","method":"GET","path":"/api/{installed_plugin_prefix}/payment-method-line/{external_id}/","declaredPattern":"/api/{installed_plugin_prefix}/payment-method-line/{external_id}/","action":"retrieve","viewset":"PaymentMethodLineViewSet","classId":"repositories/platform/mansoq-odoo-be:mansoq_odoo.resources.payment_method_line.viewset.PaymentMethodLineViewSet","detail":true,"allowedByDeclaredHttpMethods":true,"mountStatus":"plugin/local mount; actual prefix and enablement require deployment verification","routeEvidence":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/urls.py","line":15,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"handlerSource":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":68,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"registrationConditions":[],"evidenceKind":"declared/inherited method","methodEvidenceIds":["repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py:68:retrieve","repositories/platform/mansoq-core/mansoq/emr/api/viewsets/base.py:322:get_queryset"],"schemaIds":{},"classPermissionEvidence":[],"filterEvidence":[],"reviewStatus":"static contract extracted; runtime/permission/payload behavior review pending","pathParameters":[{"name":"installed_plugin_prefix","in":"deployment mount","type":"deployment-selected mount prefix","required":true,"source":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/urls.py","line":15,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"}},{"name":"external_id","in":"path","type":"router lookup string; semantic ID validation requires handler/schema review","required":true,"source":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/urls.py","line":15,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"}}]}],"methodEvidence":[{"id":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py:31:list","name":"list","owner":"repositories/platform/mansoq-odoo-be:mansoq_odoo.resources.payment_method_line.viewset.PaymentMethodLineViewSet","summary":"List payment method lines from Odoo filtered by journal type.\n\nQuery Parameters:\n    journal_type (str): The care connector code to filter by.\n                      Default: 'credit' for Care of Accounts.\n\nReturns:\n    List of payment method lines with id, name, code, journal_id, journal_name","source":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":31,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"signatureParameters":[],"parametersRead":[],"permissionChecks":[],"declaredErrors":[{"exception":"ValidationError","message":null,"dynamicMessage":true,"source":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":64,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"}}],"explicitResponseStatuses":[],"conditions":[],"schemaIds":[],"schemaUsages":[],"unconditionalRaise":false,"reviewStatus":"static declaration extracted; behavioral/security review pending"},{"id":"repositories/platform/mansoq-core/mansoq/emr/api/viewsets/base.py:322:get_queryset","name":"get_queryset","owner":"repositories/platform/mansoq-core:mansoq.emr.api.viewsets.base.EMRBaseViewSet","summary":"","source":{"path":"repositories/platform/mansoq-core/mansoq/emr/api/viewsets/base.py","line":322,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"signatureParameters":[],"parametersRead":[],"permissionChecks":[],"declaredErrors":[],"explicitResponseStatuses":[],"conditions":[],"schemaIds":[],"schemaUsages":[],"unconditionalRaise":false,"reviewStatus":"static declaration extracted; behavioral/security review pending"},{"id":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py:21:_build_query_params","name":"_build_query_params","owner":"repositories/platform/mansoq-odoo-be:mansoq_odoo.resources.payment_method_line.viewset.PaymentMethodLineViewSet","summary":"Build query parameters for Odoo API from request.","source":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":21,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"signatureParameters":[],"parametersRead":[{"name":"journal_type","in":"query","type":"not declared at read site","required":"not established","readStyle":"get","dynamicName":false,"source":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":26,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"}}],"permissionChecks":[],"declaredErrors":[],"explicitResponseStatuses":[],"conditions":[],"schemaIds":[],"schemaUsages":[],"unconditionalRaise":false,"reviewStatus":"static declaration extracted; behavioral/security review pending"},{"id":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py:68:retrieve","name":"retrieve","owner":"repositories/platform/mansoq-odoo-be:mansoq_odoo.resources.payment_method_line.viewset.PaymentMethodLineViewSet","summary":"Retrieve a specific payment method line by ID.\n\nPath Parameters:\n    pk (int): The ID of the payment method line\n\nReturns:\n    Payment method line details","source":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":68,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"signatureParameters":[{"name":"pk","type":"unspecified","required":false,"source":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":68,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"}}],"parametersRead":[],"permissionChecks":[],"declaredErrors":[{"exception":"ValidationError","message":null,"dynamicMessage":true,"source":{"path":"repositories/platform/mansoq-odoo-be/src/mansoq_odoo/resources/payment_method_line/viewset.py","line":91,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"}}],"explicitResponseStatuses":[],"conditions":[],"schemaIds":[],"schemaUsages":[],"unconditionalRaise":false,"reviewStatus":"static declaration extracted; behavioral/security review pending"}],"schemas":[],"frameworkSettings":[{"name":"DEFAULT_AUTHENTICATION_CLASSES","value":["config.authentication.CustomJWTAuthentication","config.authentication.CustomBasicAuthentication","rest_framework.authentication.SessionAuthentication","rest_framework.authentication.TokenAuthentication"],"source":{"path":"repositories/platform/mansoq-core/config/settings/base.py","line":372,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"scope":"source default; deployment overrides and action-level policies may differ"},{"name":"DEFAULT_PERMISSION_CLASSES","value":["rest_framework.permissions.IsAuthenticated","mansoq.security.utils.permission_class.MansoqAuthentication"],"source":{"path":"repositories/platform/mansoq-core/config/settings/base.py","line":372,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"scope":"source default; deployment overrides and action-level policies may differ"},{"name":"DEFAULT_PAGINATION_CLASS","value":"mansoq.utils.pagination.mansoq_pagination.MansoqLimitOffsetPagination","source":{"path":"repositories/platform/mansoq-core/config/settings/base.py","line":372,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"scope":"source default; deployment overrides and action-level policies may differ"},{"name":"PAGE_SIZE","value":14,"source":{"path":"repositories/platform/mansoq-core/config/settings/base.py","line":372,"commit":"f6e9f05f76d443b26ebd2369f67d3c3bd52257ca"},"scope":"source default; deployment overrides and action-level policies may differ"}]},"frontend":{"operations":[],"schemas":[]},"services":{"operations":[]},"boundaries":[]}