{"items":[{"type":"link","label":"Amabills - Whoosh Core API","link":"/openapi","routeSlug":"/openapi","content":{"contentType":"overview","meta":{"name":"Amabills - Whoosh Core API"},"children":[{"nodeType":"container","panels":[{"title":"Download OpenAPI description","titleTranslationKey":"download.description.title","children":[{"kind":"download","label":"openapi.json","url":"/_bundle/openapi.json?download"},{"kind":"download","label":"openapi.yaml","url":"/_bundle/openapi.yaml?download"}]},{"title":"Overview","titleTranslationKey":"info.title","children":[]},{"title":"Servers","titleTranslationKey":"servers.title","children":[{"kind":"servers","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"mode":"default"}]}],"children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"header","level":1,"label":"Amabills - Whoosh Core API (1.1.0)","showPageActions":true},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":"The Whoosh Innovations Pty. Core API provides electricity vending and traffic fine services for South African municipalities."}],"sectionId":"/openapi"}],"sectionId":"/openapi"}]}]}},{"type":"group","label":"Electricity","link":"/openapi/electricity","routeSlug":"/openapi/electricity","items":[{"label":"Confirm Customer","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/electricity/confirmcustomer","routeSlug":"/openapi/electricity/confirmcustomer","metadata":{"seo":{"title":"Confirm Customer","description":"Verifies that a meter number exists and is eligible for electricity vending or bill payment. Call this before purchasing to avoid higher latency — if you vend with an unknown meter number the system runs an implicit lookup first."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"confirmCustomer","name":"Confirm Customer","isWebhook":false,"pointer":"/paths/~1v2~1Electricity~1ConfirmCustomer/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Confirm Customer","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Verifies that a meter number exists and is eligible for electricity vending or bill payment. Call this before purchasing to avoid higher latency — if you vend with an unknown meter number the system runs an implicit lookup first."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_28","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_28","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v2~1Electricity~1ConfirmCustomer/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/Electricity/ConfirmCustomer","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_28","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","401","500"],"pointer":"/v2/Electricity/ConfirmCustomer","href":"electricity/confirmcustomer","openApiOperationId":"confirmCustomer","summary":"Confirm Customer"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_28","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_28","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Customer confirmation response.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_29","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/200/content/application~1json/example"]}},"schemaId":"schema_29","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/200/content/application~1json/example"]},{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized – missing or invalid API key."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/401/content/application~1json/example"]},{"code":"500","description":"Internal server error. The exact message may vary; treat any non-2xx, non-401 response as a generic failure.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_31","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v2~1Electricity~1ConfirmCustomer/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_29","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/200/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_29","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/200/content/application~1json/example"]}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_31","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/electricity/confirmcustomer"}],"panels":[]}]},"httpPath":"/v2/Electricity/ConfirmCustomer"},{"label":"Purchase / Vend Token / Pay Bills","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/electricity/purchaseelectricity","routeSlug":"/openapi/electricity/purchaseelectricity","metadata":{"seo":{"title":"Purchase / Vend Token / Pay Bills","description":"Vends an electricity token (prepaid) or marks a payment against a postpaid running balance."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"purchaseElectricity","name":"Purchase / Vend Token / Pay Bills","isWebhook":false,"pointer":"/paths/~1v2~1Electricity~1Purchase/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Purchase / Vend Token / Pay Bills","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Vends an electricity token (prepaid) or marks a payment against a postpaid running balance."},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Prepaid"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"tshwane_prepaid"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"mogale_prepaid"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"zeerust_prepaid"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ngwathe_prepaid"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"):"},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"returns a token string the customer enters into their meter."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Postpaid"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"mogale_postpaid"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"tshwane_postpaid"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"): returns a receipt URL proving bill offset."},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Use the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"idempotency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field to safely retry failed requests without risk of duplicate vends."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Postpaid bill payments:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if you already know you're paying a postpaid municipal account, prefer the dedicated "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Bills/Purchase"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Bills/ConfirmCustomer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints — they identify the account by "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"accountNumber"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" rather than "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"meterNumber"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and drop fields that only apply to prepaid vending."},"children":[]}]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_32","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_32","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v2~1Electricity~1Purchase/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/Electricity/Purchase","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_32","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","401","500"],"pointer":"/v2/Electricity/Purchase","href":"electricity/purchaseelectricity","openApiOperationId":"purchaseElectricity","summary":"Purchase / Vend Token / Pay Bills"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_32","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_32","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Purchase response.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_33","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/responses/200/content/application~1json/example"]}},"schemaId":"schema_33","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/responses/200/content/application~1json/example"]},{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized – missing or invalid API key."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/responses/401/content/application~1json/example"]},{"code":"500","description":"Internal server error. The exact message may vary; treat any non-2xx, non-401 response as a generic failure.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_31","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v2~1Electricity~1Purchase/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_33","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/responses/200/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_33","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/responses/200/content/application~1json/example"]}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_31","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1Electricity~1Purchase/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/electricity/purchaseelectricity"}],"panels":[]}]},"httpPath":"/v2/Electricity/Purchase"},{"label":"Check Balance","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/electricity/checkbalance","routeSlug":"/openapi/electricity/checkbalance","metadata":{"seo":{"title":"Check Balance","description":"Returns the authenticated merchant's current credit balance across all consumed prepaid VAS services. Optionally includes a transaction breakdown for a specified period."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"checkBalance","name":"Check Balance","isWebhook":false,"pointer":"/paths/~1v1~1Merchant~1CheckBalance/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Check Balance","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns the authenticated merchant's current credit balance across all consumed prepaid VAS services. Optionally includes a transaction breakdown for a specified period."},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_34","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_34","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v1~1Merchant~1CheckBalance/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/Merchant/CheckBalance","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_34","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","401","500"],"pointer":"/v1/Merchant/CheckBalance","href":"electricity/checkbalance","openApiOperationId":"checkBalance","summary":"Check Balance"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_34","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_34","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Balance response.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_35","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/responses/200/content/application~1json/example"]}},"schemaId":"schema_35","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/responses/200/content/application~1json/example"]},{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized – missing or invalid API key."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/responses/401/content/application~1json/example"]},{"code":"500","description":"Internal server error. The exact message may vary; treat any non-2xx, non-401 response as a generic failure.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_31","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v1~1Merchant~1CheckBalance/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_35","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/responses/200/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_35","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/responses/200/content/application~1json/example"]}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_31","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v1~1Merchant~1CheckBalance/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/electricity/checkbalance"}],"panels":[]}]},"httpPath":"/v1/Merchant/CheckBalance"}],"content":{"contentType":"group","meta":{"name":"Electricity"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Electricity","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Prepaid token vending for Tshwane, Mogale, Zeerust, and Ngwathe municipalities. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Purchase"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ConfirmCustomer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" also still accept postpaid meter numbers for backwards compatibility — new integrations should use the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Bills"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" endpoints for postpaid municipal accounts instead."},"children":[]}]}]}]}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/Electricity/ConfirmCustomer","summary":"Confirm Customer","prefix":{"name":"post","color":"post"},"badges":[],"link":"/electricity/confirmcustomer","deprecated":false},{"title":"/v2/Electricity/Purchase","summary":"Purchase / Vend Token / Pay Bills","prefix":{"name":"post","color":"post"},"badges":[],"link":"/electricity/purchaseelectricity","deprecated":false},{"title":"/v1/Merchant/CheckBalance","summary":"Check Balance","prefix":{"name":"post","color":"post"},"badges":[],"link":"/electricity/checkbalance","deprecated":false}]}]}]}]}},{"type":"group","label":"Bills","link":"/openapi/bills","routeSlug":"/openapi/bills","items":[{"label":"Confirm Customer","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/bills/confirmbillcustomer","routeSlug":"/openapi/bills/confirmbillcustomer","metadata":{"seo":{"title":"Confirm Customer","description":"Verifies that a postpaid municipal account number exists and returns its current running balance. Call this before Purchase to avoid higher latency — if you pay a bill for an unknown account number the system runs an implicit lookup first."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"confirmBillCustomer","name":"Confirm Customer","isWebhook":false,"pointer":"/paths/~1v2~1Bills~1ConfirmCustomer/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Confirm Customer","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Verifies that a postpaid municipal account number exists and returns its current running balance. Call this before "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Purchase"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to avoid higher latency — if you pay a bill for an unknown account number the system runs an implicit lookup first."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_36","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_36","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v2~1Bills~1ConfirmCustomer/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/Bills/ConfirmCustomer","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_36","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","401","500"],"pointer":"/v2/Bills/ConfirmCustomer","href":"bills/confirmbillcustomer","openApiOperationId":"confirmBillCustomer","summary":"Confirm Customer"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_36","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_36","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Customer confirmation response.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_29","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/responses/200/content/application~1json/example"]}},"schemaId":"schema_29","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/responses/200/content/application~1json/example"]},{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized – missing or invalid API key."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/responses/401/content/application~1json/example"]},{"code":"500","description":"Internal server error. The exact message may vary; treat any non-2xx, non-401 response as a generic failure.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_31","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v2~1Bills~1ConfirmCustomer/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_29","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/responses/200/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_29","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/responses/200/content/application~1json/example"]}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_31","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1Bills~1ConfirmCustomer/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/bills/confirmbillcustomer"}],"panels":[]}]},"httpPath":"/v2/Bills/ConfirmCustomer"},{"label":"Purchase / Pay Bill","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/bills/purchasebill","routeSlug":"/openapi/bills/purchasebill","metadata":{"seo":{"title":"Purchase / Pay Bill","description":"Pays down a postpaid municipal account's running balance. Unlike Electricity/Purchase, no token or kWh amount is returned — only the account's remaining balance.The account is identified by accountNumber rather than meterNumber, and the request carries none of the prepaid/POS-only fields (arrears, sgc, tarrifIndex, krn) accepted by Electricity/Purchase.Use the idempotency field to safely retry failed requests without risk of duplicate payments."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"purchaseBill","name":"Purchase / Pay Bill","isWebhook":false,"pointer":"/paths/~1v2~1Bills~1Purchase/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Purchase / Pay Bill","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Pays down a postpaid municipal account's running balance. Unlike "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Electricity/Purchase"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", no token or kWh amount is returned — only the account's remaining balance."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The account is identified by "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"accountNumber"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" rather than "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"meterNumber"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", and the request carries none of the prepaid/POS-only fields ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"arrears"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"sgc"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"tarrifIndex"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"krn"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":") accepted by "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Electricity/Purchase"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Use the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"idempotency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field to safely retry failed requests without risk of duplicate payments."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_37","exampleIds":["paths/~1v2~1Bills~1Purchase/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_37","exampleIds":["paths/~1v2~1Bills~1Purchase/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v2~1Bills~1Purchase/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/Bills/Purchase","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_37","exampleIds":["paths/~1v2~1Bills~1Purchase/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","401","500"],"pointer":"/v2/Bills/Purchase","href":"bills/purchasebill","openApiOperationId":"purchaseBill","summary":"Purchase / Pay Bill"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_37","exampleIds":["paths/~1v2~1Bills~1Purchase/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_37","exampleIds":["paths/~1v2~1Bills~1Purchase/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Bill payment response.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_33","exampleIds":["paths/~1v2~1Bills~1Purchase/post/responses/200/content/application~1json/example"]}},"schemaId":"schema_33","exampleIds":["paths/~1v2~1Bills~1Purchase/post/responses/200/content/application~1json/example"]},{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized – missing or invalid API key."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1Bills~1Purchase/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v2~1Bills~1Purchase/post/responses/401/content/application~1json/example"]},{"code":"500","description":"Internal server error. The exact message may vary; treat any non-2xx, non-401 response as a generic failure.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1Bills~1Purchase/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_31","exampleIds":["paths/~1v2~1Bills~1Purchase/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v2~1Bills~1Purchase/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_33","exampleIds":["paths/~1v2~1Bills~1Purchase/post/responses/200/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_33","exampleIds":["paths/~1v2~1Bills~1Purchase/post/responses/200/content/application~1json/example"]}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v2~1Bills~1Purchase/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1Bills~1Purchase/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_31","exampleIds":["paths/~1v2~1Bills~1Purchase/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1Bills~1Purchase/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/bills/purchasebill"}],"panels":[]}]},"httpPath":"/v2/Bills/Purchase"}],"content":{"contentType":"group","meta":{"name":"Bills"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Bills","showPageActions":true},{"nodeType":"markdoc","content":"Postpaid municipal bill payments for Tshwane and Mogale accounts, identified by account number rather than meter number."}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/Bills/ConfirmCustomer","summary":"Confirm Customer","prefix":{"name":"post","color":"post"},"badges":[],"link":"/bills/confirmbillcustomer","deprecated":false},{"title":"/v2/Bills/Purchase","summary":"Purchase / Pay Bill","prefix":{"name":"post","color":"post"},"badges":[],"link":"/bills/purchasebill","deprecated":false}]}]}]}]}},{"type":"group","label":"VAS","link":"/openapi/vas","routeSlug":"/openapi/vas","items":[{"label":"Confirm VAS","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/vas/confirmvas","routeSlug":"/openapi/vas/confirmvas","metadata":{"seo":{"title":"Confirm VAS","description":"Confirm VAS"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"confirmVas","name":"Confirm VAS","isWebhook":false,"pointer":"/paths/~1v1~1VAS~1Confirm/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Confirm VAS","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_38","exampleIds":["paths/~1v1~1VAS~1Confirm/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_38","exampleIds":["paths/~1v1~1VAS~1Confirm/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v1~1VAS~1Confirm/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/VAS/Confirm","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_38","exampleIds":["paths/~1v1~1VAS~1Confirm/post/requestBody/content/application~1json/example"]}},"responseCodes":["401","500"],"pointer":"/v1/VAS/Confirm","href":"vas/confirmvas","openApiOperationId":"confirmVas","summary":"Confirm VAS"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_38","exampleIds":["paths/~1v1~1VAS~1Confirm/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_38","exampleIds":["paths/~1v1~1VAS~1Confirm/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized – missing or invalid API key."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1VAS~1Confirm/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v1~1VAS~1Confirm/post/responses/401/content/application~1json/example"]},{"code":"500","description":"Internal server error. The exact message may vary; treat any non-2xx, non-401 response as a generic failure.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v1~1VAS~1Confirm/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_31","exampleIds":["paths/~1v1~1VAS~1Confirm/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v1~1VAS~1Confirm/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v1~1VAS~1Confirm/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1VAS~1Confirm/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_31","exampleIds":["paths/~1v1~1VAS~1Confirm/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v1~1VAS~1Confirm/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/vas/confirmvas"}],"panels":[]}]},"httpPath":"/v1/VAS/Confirm"},{"label":"Purchase VAS","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/vas/purchasevas","routeSlug":"/openapi/vas/purchasevas","metadata":{"seo":{"title":"Purchase VAS","description":"Purchase VAS"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"purchaseVas","name":"Purchase VAS","isWebhook":false,"pointer":"/paths/~1v1~1VAS~1Purchase/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Purchase VAS","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_38","exampleIds":["paths/~1v1~1VAS~1Purchase/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_38","exampleIds":["paths/~1v1~1VAS~1Purchase/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v1~1VAS~1Purchase/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/VAS/Purchase","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_38","exampleIds":["paths/~1v1~1VAS~1Purchase/post/requestBody/content/application~1json/example"]}},"responseCodes":["401","500"],"pointer":"/v1/VAS/Purchase","href":"vas/purchasevas","openApiOperationId":"purchaseVas","summary":"Purchase VAS"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_38","exampleIds":["paths/~1v1~1VAS~1Purchase/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_38","exampleIds":["paths/~1v1~1VAS~1Purchase/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized – missing or invalid API key."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1VAS~1Purchase/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v1~1VAS~1Purchase/post/responses/401/content/application~1json/example"]},{"code":"500","description":"Internal server error. The exact message may vary; treat any non-2xx, non-401 response as a generic failure.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v1~1VAS~1Purchase/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_31","exampleIds":["paths/~1v1~1VAS~1Purchase/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v1~1VAS~1Purchase/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v1~1VAS~1Purchase/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1VAS~1Purchase/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_31","exampleIds":["paths/~1v1~1VAS~1Purchase/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v1~1VAS~1Purchase/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/vas/purchasevas"}],"panels":[]}]},"httpPath":"/v1/VAS/Purchase"}],"content":{"contentType":"group","meta":{"name":"VAS"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"VAS","showPageActions":true},{"nodeType":"markdoc","content":"Value-added services (airtime, data, etc.)."}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v1/VAS/Confirm","summary":"Confirm VAS","prefix":{"name":"post","color":"post"},"badges":[],"link":"/vas/confirmvas","deprecated":false},{"title":"/v1/VAS/Purchase","summary":"Purchase VAS","prefix":{"name":"post","color":"post"},"badges":[],"link":"/vas/purchasevas","deprecated":false}]}]}]}]}},{"type":"group","label":"Traffic Fines","link":"/openapi/traffic-fines","routeSlug":"/openapi/traffic-fines","items":[{"label":"Query by ID Number","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/traffic-fines/viewtrafficfinebyid","routeSlug":"/openapi/traffic-fines/viewtrafficfinebyid","metadata":{"seo":{"title":"Query by ID Number","description":"Returns all recorded traffic fines for a given South African national ID number or Foreign ID number."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"viewTrafficFineByID","name":"Query by ID Number","isWebhook":false,"pointer":"/paths/~1v1~1TrafficFine~1ViewByIDnumber/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Query by ID Number","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns all recorded traffic fines for a given South African national ID number or Foreign ID number."},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_39","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_39","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v1~1TrafficFine~1ViewByIDnumber/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/TrafficFine/ViewByIDnumber","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_39","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","401","500"],"pointer":"/v1/TrafficFine/ViewByIDnumber","href":"traffic-fines/viewtrafficfinebyid","openApiOperationId":"viewTrafficFineByID","summary":"Query by ID Number"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_39","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_39","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Traffic fine query by ID response.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_40","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/200/content/application~1json/example"]}},"schemaId":"schema_40","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/200/content/application~1json/example"]},{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized – missing or invalid API key."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/401/content/application~1json/example"]},{"code":"500","description":"Internal server error.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_41","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_41","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_40","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/200/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_40","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/200/content/application~1json/example"]}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_41","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_41","exampleIds":["paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/traffic-fines/viewtrafficfinebyid"}],"panels":[]}]},"httpPath":"/v1/TrafficFine/ViewByIDnumber"},{"label":"Query by Business Registration Number","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/traffic-fines/viewtrafficfinebybrn","routeSlug":"/openapi/traffic-fines/viewtrafficfinebybrn","metadata":{"seo":{"title":"Query by Business Registration Number","description":"Returns all recorded traffic fines for a given business registration number (BRN)."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"viewTrafficFineByBRN","name":"Query by Business Registration Number","isWebhook":false,"pointer":"/paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Query by Business Registration Number","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns all recorded traffic fines for a given business registration number (BRN)."},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_42","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_42","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/TrafficFine/ViewByBusinessRegistration","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_42","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","401","500"],"pointer":"/v1/TrafficFine/ViewByBusinessRegistration","href":"traffic-fines/viewtrafficfinebybrn","openApiOperationId":"viewTrafficFineByBRN","summary":"Query by Business Registration Number"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_42","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_42","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Traffic fine query by BRN response.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_43"}},"schemaId":"schema_43"},{"code":"401","description":"Unauthorized - missing or invalid API key.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses/401/content/application~1json/example"]},{"code":"500","description":"Internal server error.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_44","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_44","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_43","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_43"}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_44","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_44","exampleIds":["paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/traffic-fines/viewtrafficfinebybrn"}],"panels":[]}]},"httpPath":"/v1/TrafficFine/ViewByBusinessRegistration"},{"label":"Query by Notice Number","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/traffic-fines/viewtrafficfinebynoticenumber","routeSlug":"/openapi/traffic-fines/viewtrafficfinebynoticenumber","metadata":{"seo":{"title":"Query by Notice Number","description":"Returns the details of a specific traffic fine by its AARTO notice number."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"viewTrafficFineByNoticeNumber","name":"Query by Notice Number","isWebhook":false,"pointer":"/paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Query by Notice Number","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Returns the details of a specific traffic fine by its AARTO notice number."},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_45","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_45","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/TrafficFine/ViewByNoticeNumber","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_45","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","401","500"],"pointer":"/v1/TrafficFine/ViewByNoticeNumber","href":"traffic-fines/viewtrafficfinebynoticenumber","openApiOperationId":"viewTrafficFineByNoticeNumber","summary":"Query by Notice Number"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_45","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_45","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Traffic fine query by notice number response.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_46","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/200/content/application~1json/example"]}},"schemaId":"schema_46","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/200/content/application~1json/example"]},{"code":"401","description":"Unauthorized - missing or invalid API key.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/401/content/application~1json/example"]},{"code":"500","description":"Internal server error.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_47","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_47","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_46","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/200/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_46","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/200/content/application~1json/example"]}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_47","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_47","exampleIds":["paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/traffic-fines/viewtrafficfinebynoticenumber"}],"panels":[]}]},"httpPath":"/v1/TrafficFine/ViewByNoticeNumber"},{"label":"Validate Traffic Fine Payment","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/traffic-fines/validatemarktrafficfinesaspaid","routeSlug":"/openapi/traffic-fines/validatemarktrafficfinesaspaid","metadata":{"seo":{"title":"Validate Traffic Fine Payment","description":"Validates that the proposed payment amount matches the expected gross amount for the selected fines. Call this before MarkTrafficFineAsPaid to confirm the correct amount."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"validateMarkTrafficFinesAsPaid","name":"Validate Traffic Fine Payment","isWebhook":false,"pointer":"/paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Validate Traffic Fine Payment","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Validates that the proposed payment amount matches the expected gross amount for the selected fines. Call this before "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"MarkTrafficFineAsPaid"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to confirm the correct amount."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_48","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_48","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/TrafficFine/ValidateMarkTrafficFinesAsPaid","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_48","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","401","500"],"pointer":"/v1/TrafficFine/ValidateMarkTrafficFinesAsPaid","href":"traffic-fines/validatemarktrafficfinesaspaid","openApiOperationId":"validateMarkTrafficFinesAsPaid","summary":"Validate Traffic Fine Payment"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_48","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_48","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Payment validation response.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_49","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/200/content/application~1json/example"]}},"schemaId":"schema_49","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/200/content/application~1json/example"]},{"code":"401","description":"Unauthorized - missing or invalid API key.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/401/content/application~1json/example"]},{"code":"500","description":"Internal server error.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_50","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_50","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_49","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/200/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_49","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/200/content/application~1json/example"]}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_50","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_50","exampleIds":["paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/traffic-fines/validatemarktrafficfinesaspaid"}],"panels":[]}]},"httpPath":"/v1/TrafficFine/ValidateMarkTrafficFinesAsPaid"},{"label":"Mark Traffic Fines as Paid","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/traffic-fines/marktrafficfineaspaid","routeSlug":"/openapi/traffic-fines/marktrafficfineaspaid","metadata":{"seo":{"title":"Mark Traffic Fines as Paid","description":"Marks one or more traffic fines as paid on behalf of a customer. The merchant declares that they received the gross amount (net fine + vendor fee) from the customer and wishes to clear the fines with AARTO."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"markTrafficFineAsPaid","name":"Mark Traffic Fines as Paid","isWebhook":false,"pointer":"/paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Mark Traffic Fines as Paid","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Marks one or more traffic fines as paid on behalf of a customer. The merchant declares that they received the gross amount (net fine + vendor fee) from the customer and wishes to clear the fines with AARTO."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Calling this endpoint will result in a Whoosh invoice for the gross transaction value of all fines marked paid, issued at the end of each billing cycle."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Recommended:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Call "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ValidateMarkTrafficFinesAsPaid"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" first to confirm the correct amount before calling this endpoint."},"children":[]}]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_51","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_51","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v1/TrafficFine/MarkTrafficFineAsPaid","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_51","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","401","500"],"pointer":"/v1/TrafficFine/MarkTrafficFineAsPaid","href":"traffic-fines/marktrafficfineaspaid","openApiOperationId":"markTrafficFineAsPaid","summary":"Mark Traffic Fines as Paid"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_51","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_51","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Mark as paid response.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_52","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/200/content/application~1json/example"]}},"schemaId":"schema_52","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/200/content/application~1json/example"]},{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized – missing or invalid API key."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/401/content/application~1json/example"]},{"code":"500","description":"Internal server error.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_53","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_53","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"schema_52","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/200/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_52","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/200/content/application~1json/example"]}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_53","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_53","exampleIds":["paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/traffic-fines/marktrafficfineaspaid"}],"panels":[]}]},"httpPath":"/v1/TrafficFine/MarkTrafficFineAsPaid"}],"content":{"contentType":"group","meta":{"name":"Traffic Fines"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Traffic Fines","showPageActions":true},{"nodeType":"markdoc","content":"Traffic fine lookups, payment validation, and payment marking via the AARTO system."}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v1/TrafficFine/ViewByIDnumber","summary":"Query by ID Number","prefix":{"name":"post","color":"post"},"badges":[],"link":"/traffic-fines/viewtrafficfinebyid","deprecated":false},{"title":"/v1/TrafficFine/ViewByBusinessRegistration","summary":"Query by Business Registration Number","prefix":{"name":"post","color":"post"},"badges":[],"link":"/traffic-fines/viewtrafficfinebybrn","deprecated":false},{"title":"/v1/TrafficFine/ViewByNoticeNumber","summary":"Query by Notice Number","prefix":{"name":"post","color":"post"},"badges":[],"link":"/traffic-fines/viewtrafficfinebynoticenumber","deprecated":false},{"title":"/v1/TrafficFine/ValidateMarkTrafficFinesAsPaid","summary":"Validate Traffic Fine Payment","prefix":{"name":"post","color":"post"},"badges":[],"link":"/traffic-fines/validatemarktrafficfinesaspaid","deprecated":false},{"title":"/v1/TrafficFine/MarkTrafficFineAsPaid","summary":"Mark Traffic Fines as Paid","prefix":{"name":"post","color":"post"},"badges":[],"link":"/traffic-fines/marktrafficfineaspaid","deprecated":false}]}]}]}]}},{"type":"group","label":"Whoosh Payments","link":"/openapi/whoosh-payments","routeSlug":"/openapi/whoosh-payments","items":[{"label":"Create Order","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/whoosh-payments/putorderv2","routeSlug":"/openapi/whoosh-payments/putorderv2","metadata":{"seo":{"title":"Create Order","description":"Creates an order on the Whoosh platform and returns a Whoosh Payment Gateway hosted checkout URL to redirect the customer to for secure card payment."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"putOrderV2","name":"Create Order","isWebhook":false,"pointer":"/paths/~1v2~1putOrder/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create Order","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Creates an order on the Whoosh platform and returns a Whoosh Payment Gateway hosted checkout URL to redirect the customer to for secure card payment."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Whoosh orchestrates order creation and reconciliation, and the Whoosh Payment Gateway manages card capture, authorization, and payment security."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Staging environment:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Always use "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantId: staging"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when calling the test base URL. A production "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be issued before go-live."},"children":[]}]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PutOrderCommand","exampleIds":["paths/~1v2~1putOrder/post/requestBody/content/application~1json/example"]}},"schemaId":"components/schemas/PutOrderCommand","exampleIds":["paths/~1v2~1putOrder/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v2~1putOrder/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/putOrder","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"components/schemas/PutOrderCommand","exampleIds":["paths/~1v2~1putOrder/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","400","401","500"],"pointer":"/v2/putOrder","href":"whoosh-payments/putorderv2","openApiOperationId":"putOrderV2","summary":"Create Order"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"components/schemas/PutOrderCommand","exampleIds":["paths/~1v2~1putOrder/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PutOrderCommand","exampleIds":["paths/~1v2~1putOrder/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Order created successfully. Redirect the customer to "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentPageUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PutOrderResponse","exampleIds":["paths/~1v2~1putOrder/post/responses/200/content/application~1json/example"]}},"schemaId":"components/schemas/PutOrderResponse","exampleIds":["paths/~1v2~1putOrder/post/responses/200/content/application~1json/example"]},{"code":"400","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bad request – order validation failed. Returns a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"{ status, message, data }"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" wrapper. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"data"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is normally an empty object, since the underlying error's "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"message"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is not enumerable and is not preserved on serialization."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_54","exampleIds":["paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/notAMerchantAccount","paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/incompleteOrderDetails","paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/duplicateOrder"]}},"schemaId":"schema_54","exampleIds":["paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/notAMerchantAccount","paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/incompleteOrderDetails","paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/duplicateOrder"]},{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized – missing or invalid API key."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1putOrder/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v2~1putOrder/post/responses/401/content/application~1json/example"]},{"code":"500","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Internal server error – for example when no merchant exists for the given "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". This case is not caught by the handler's own error handling, so the exact body is not guaranteed; treat any non-2xx, non-400/401 response as a generic failure."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1putOrder/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_31","exampleIds":["paths/~1v2~1putOrder/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v2~1putOrder/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/PutOrderResponse","exampleIds":["paths/~1v2~1putOrder/post/responses/200/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PutOrderResponse","exampleIds":["paths/~1v2~1putOrder/post/responses/200/content/application~1json/example"]}}},{"code":"400","schemaId":"schema_54","exampleIds":["paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/notAMerchantAccount","paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/incompleteOrderDetails","paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/duplicateOrder"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_54","exampleIds":["paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/notAMerchantAccount","paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/incompleteOrderDetails","paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/duplicateOrder"]}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v2~1putOrder/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1putOrder/post/responses/401/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_31","exampleIds":["paths/~1v2~1putOrder/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1putOrder/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/whoosh-payments/putorderv2"}],"panels":[]}]},"httpPath":"/v2/putOrder"},{"label":"End of Day Ledger","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/whoosh-payments/whooshendofdayledger","routeSlug":"/openapi/whoosh-payments/whooshendofdayledger","metadata":{"seo":{"title":"End of Day Ledger","description":"Returns all MPGS transactions for the previous South Africa business day, including reconciliation metadata and any verification errors."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"whooshEndOfDayLedger","name":"End of Day Ledger","isWebhook":false,"pointer":"/paths/~1v2~1whooshEndOfDayLedger/post","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"End of Day Ledger","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returns all MPGS transactions for the previous South Africa business day, including reconciliation metadata and any verification errors."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"No request body is required. The merchant is identified automatically from the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"x-api-key"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" header."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/whooshEndOfDayLedger","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"responseCodes":["200","400","401","403","404","500"],"pointer":"/v2/whooshEndOfDayLedger","href":"whoosh-payments/whooshendofdayledger","openApiOperationId":"whooshEndOfDayLedger","summary":"End of Day Ledger"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Successfully retrieved previous business day transactions.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/200/content/application~1json/example"]}},"schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/200/content/application~1json/example"]},{"code":"400","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Missing "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" in request body."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/400/content/application~1json/example"]}},"schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/400/content/application~1json/example"]},{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized – missing or invalid API key."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/401/content/application~1json/example"]},{"code":"403","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" resolved from the API key does not match, and is not a registered sub-merchant."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/403/content/application~1json/example"]}},"schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/403/content/application~1json/example"]},{"code":"404","description":"No MPGS channel configured for this merchant.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/404/content/application~1json/example"]}},"schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/404/content/application~1json/example"]},{"code":"500","description":"Internal server error. The exact message may vary; treat any non-2xx, non-401 response as a generic failure.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_31","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v2~1whooshEndOfDayLedger/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/200/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/200/content/application~1json/example"]}}},{"code":"400","schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/400/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/400/content/application~1json/example"]}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/401/content/application~1json/example"]}}},{"code":"403","schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/403/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/403/content/application~1json/example"]}}},{"code":"404","schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/404/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/EndOfDayLedgerResponse","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/404/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_31","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1whooshEndOfDayLedger/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/whoosh-payments/whooshendofdayledger"}],"panels":[]}]},"httpPath":"/v2/whooshEndOfDayLedger"},{"label":"Order Payment Status","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/whoosh-payments/whooshcheckorderpaymentstatus","routeSlug":"/openapi/whoosh-payments/whooshcheckorderpaymentstatus","metadata":{"seo":{"title":"Order Payment Status","description":"Verifies the payment status of a specific order by checking its associated MPGS payment sessions."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"whooshCheckOrderPaymentStatus","name":"Order Payment Status","isWebhook":false,"pointer":"/paths/~1v2~1whooshCheckOrderPaymentStatus/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Order Payment Status","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":"Verifies the payment status of a specific order by checking its associated MPGS payment sessions."},{"nodeType":"security","requirements":[{"schemes":[{"name":"ApiKeyAuth","scopes":[],"type":"apiKey","in":"header","paramName":"X-API-KEY"}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_55","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/requestBody/content/application~1json/example"]}},"schemaId":"schema_55","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/requestBody/content/application~1json/example"],"pointer":"/paths/~1v2~1whooshCheckOrderPaymentStatus/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/v2/whooshCheckOrderPaymentStatus","servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"ApiKeyAuth","type":"apiKey","name":"X-API-KEY","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"schema_55","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/requestBody/content/application~1json/example"]}},"responseCodes":["200","400","401","403","404","500"],"pointer":"/v2/whooshCheckOrderPaymentStatus","href":"whoosh-payments/whooshcheckorderpaymentstatus","openApiOperationId":"whooshCheckOrderPaymentStatus","summary":"Order Payment Status"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"/_mock/openapi","description":"Mock server","isMockServer":true},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}],"schemaId":"schema_55","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/requestBody/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_55","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/requestBody/content/application~1json/example"]}},"examples":[{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Payment status successfully retrieved.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/OrderPaymentStatusResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/200/content/application~1json/example"]}},"schemaId":"components/schemas/OrderPaymentStatusResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/200/content/application~1json/example"]},{"code":"400","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Missing or empty "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"orderId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/OrderPaymentStatusErrorResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/400/content/application~1json/example"]}},"schemaId":"components/schemas/OrderPaymentStatusErrorResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/400/content/application~1json/example"]},{"code":"401","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unauthorized – missing or invalid API key."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/401/content/application~1json/example"]}},"schemaId":"schema_30","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/401/content/application~1json/example"]},{"code":"403","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" in the request does not match the authenticated API key and is not a registered sub-merchant."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/OrderPaymentStatusErrorResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/403/content/application~1json/example"]}},"schemaId":"components/schemas/OrderPaymentStatusErrorResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/403/content/application~1json/example"]},{"code":"404","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"No MPGS channel configured for the merchant, or no order found for the given "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"orderId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/merchant."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/OrderPaymentStatusErrorResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/404/content/application~1json/example"]}},"schemaId":"components/schemas/OrderPaymentStatusErrorResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/404/content/application~1json/example"]},{"code":"500","description":"Internal server error. The exact message may vary; treat any non-2xx, non-401 response as a generic failure.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/500/content/application~1json/example"]}},"schemaId":"schema_31","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/500/content/application~1json/example"]}],"pointer":"/paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses"}],"panels":[{"children":[{"kind":"response","headerTitle":"Response","responseCodes":[{"code":"200","schemaId":"components/schemas/OrderPaymentStatusResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/200/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/OrderPaymentStatusResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/200/content/application~1json/example"]}}},{"code":"400","schemaId":"components/schemas/OrderPaymentStatusErrorResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/400/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/OrderPaymentStatusErrorResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/400/content/application~1json/example"]}}},{"code":"401","schemaId":"schema_30","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/401/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_30","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/401/content/application~1json/example"]}}},{"code":"403","schemaId":"components/schemas/OrderPaymentStatusErrorResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/403/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/OrderPaymentStatusErrorResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/403/content/application~1json/example"]}}},{"code":"404","schemaId":"components/schemas/OrderPaymentStatusErrorResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/404/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/OrderPaymentStatusErrorResponse","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/404/content/application~1json/example"]}}},{"code":"500","schemaId":"schema_31","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/500/content/application~1json/example"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"schema_31","exampleIds":["paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/500/content/application~1json/example"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/whoosh-payments/whooshcheckorderpaymentstatus"}],"panels":[]}]},"httpPath":"/v2/whooshCheckOrderPaymentStatus"}],"content":{"contentType":"group","meta":{"name":"Whoosh Payments"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Whoosh Payments","showPageActions":true},{"nodeType":"markdoc","content":"Order creation and Whoosh Payment Gateway checkout initiation. Use these endpoints to create an order on the Whoosh platform and obtain a payment URL to redirect customers for secure card capture.\nThere also reconciliation and payment status verification endpoints. Use these to retrieve end-of-day transaction ledgers and verify the payment status of individual orders."}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/v2/putOrder","summary":"Create Order","prefix":{"name":"post","color":"post"},"badges":[],"link":"/whoosh-payments/putorderv2","deprecated":false},{"title":"/v2/whooshEndOfDayLedger","summary":"End of Day Ledger","prefix":{"name":"post","color":"post"},"badges":[],"link":"/whoosh-payments/whooshendofdayledger","deprecated":false},{"title":"/v2/whooshCheckOrderPaymentStatus","summary":"Order Payment Status","prefix":{"name":"post","color":"post"},"badges":[],"link":"/whoosh-payments/whooshcheckorderpaymentstatus","deprecated":false}]}]}]}]}}],"store":{"schemaStore":{"components/schemas/SuccessEnvelopeBoolean":{"id":"components/schemas/SuccessEnvelopeBoolean","kind":"json-schema","title":"SuccessEnvelopeBoolean","data":{"type":"object","description":"Standard response envelope used by Electricity endpoints.","properties":{"success":{"example":true,"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - action successful, result is in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"data"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"false"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" - error occurred, details are in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"error"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"errorNo"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"data":{"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Result payload. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"false"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"nullable":true},"error":{"type":"string","nullable":true,"example":"999 - Internal server error","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Human-readable error message. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"errorNo":{"type":"integer","nullable":true,"example":999,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error code. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}}}},"components/schemas/Municipality":{"id":"components/schemas/Municipality","kind":"json-schema","title":"Municipality","data":{"type":"string","enum":["tshwane_prepaid","zeerust_prepaid","mogale_prepaid","ngwathe_prepaid","mogale_postpaid","tshwane_postpaid"],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Municipality identifier. Municipalities ending in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"_prepaid"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" support token vending;  Municipalities ending in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"_postpaid"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" supports postpaid bill payments."},"children":[]}]}]}]}},"components/schemas/BillMunicipality":{"id":"components/schemas/BillMunicipality","kind":"json-schema","title":"BillMunicipality","data":{"type":"string","enum":["mogale_postpaid","tshwane_postpaid"],"description":"Postpaid municipal account issuer. Accepted by the Bills endpoints only."}},"components/schemas/ElectricityCustomer":{"id":"components/schemas/ElectricityCustomer","kind":"json-schema","title":"ElectricityCustomer","data":{"type":"object","description":"Details of the meter owner returned by ConfirmCustomer.","properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Meter number (same as "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"meter_number"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":")."},"children":[]}]}]}],"example":"142567423303"},"meter_number":{"type":"string","description":"Meter number.","example":"142567423303"},"meter_source":{"$ref":"#/components/schemas/Municipality"},"name":{"type":"string","description":"Surname of the meter owner.","example":"TSHITAMBA"},"phone_number":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Phone number of the meter owner. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if not provided by the municipality."},"children":[]}]}]}]},"email":{"type":"string","format":"email","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Email of the meter owner. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if not provided by the municipality."},"children":[]}]}]}]},"provider_specific":{"type":"object","description":"Municipality-specific metadata. Shape varies per provider.","properties":{"token":{"type":"string","description":"Printable slip that can be presented to the customer."},"name":{"type":"string"},"firstName":{"type":"string"},"pocName":{"type":"string"},"minLimit":{"type":"integer"},"maxLimit":{"type":"integer"},"tarrifIndex":{"type":"integer"},"sgc":{"type":"integer"},"krn":{"type":"integer"},"keyExpiryNumber":{"type":"integer"},"tokenTechnology":{"type":"integer"},"units":{"type":"number"}}}}}},"components/schemas/ConfirmCustomerResult":{"id":"components/schemas/ConfirmCustomerResult","kind":"json-schema","title":"ConfirmCustomerResult","data":{"type":"object","properties":{"exists":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if the meter number was validated and can be used to vend electricity or pay bills."},"children":[]}]}]}]},"municipality":{"$ref":"#/components/schemas/Municipality"},"customer":{"$ref":"#/components/schemas/ElectricityCustomer"}}}},"components/schemas/PurchaseElectricityResult":{"id":"components/schemas/PurchaseElectricityResult","kind":"json-schema","title":"PurchaseElectricityResult","data":{"type":"object","properties":{"name":{"type":"string","description":"Full name of the person linked to the meter.","example":"MR. A J KWINDA"},"amount":{"type":"number","description":"Amount transacted.","example":50},"meter":{"type":"string","description":"Meter number used for the transaction.","example":"81114926223"},"date":{"type":"string","description":"Date-time string. Format: \"DD mmm YYYY hh:mm:ss AM/PM\".","example":"22 Mar 2026 3:24:11 PM"},"timestamp":{"type":"integer","format":"int64","description":"Transaction date-time as a UNIX timestamp in milliseconds.","example":1774193051166},"token":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Prepaid only."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" The vended token including the full printable receipt. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for postpaid municipalities."},"children":[]}]}]}]},"tokenCount":{"type":"integer","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Total number of new tokens generated. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for postpaid."},"children":[]}]}]}],"example":1},"units":{"type":"number","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Total electricity units vended. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for postpaid."},"children":[]}]}]}],"example":2.9},"receipt":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Postpaid only."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" URL with the purchase receipt proving bill offset. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for prepaid municipalities."},"children":[]}]}]}]},"municipality":{"$ref":"#/components/schemas/Municipality"},"mode":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"0"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = prepaid token vend, "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"1"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = postpaid bill payment."},"children":[]}]}]}],"example":0},"details":{"type":"object","description":"Low-level transaction details from the municipality gateway.","properties":{"balance":{"type":"number"},"code":{"type":"integer"},"date":{"type":"string"},"desc":{"type":"string"},"message":{"type":"string"},"refno":{"type":"string"},"time":{"type":"string"},"trDetails":{"type":"object","properties":{"amt":{"type":"number"},"date":{"type":"string"},"no":{"type":"string"},"status":{"type":"string"},"time":{"type":"string"},"vat":{"type":"number"}}},"voucher":{"type":"object","properties":{"amounts":{"type":"array","items":{"type":"object","properties":{"desc":{"type":"string"},"amt":{"type":"number"},"outstanding":{"type":"number"}}}},"elecamt":{"type":"number"},"message":{"type":"string"},"meterno":{"type":"string"},"name":{"type":"string"},"receiptdesc":{"type":"string"},"receiptno":{"type":"string"},"receiver":{"type":"string"},"token":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string"},"info":{"type":"string"},"type":{"type":"string"}}}},"units":{"type":"number"},"vatno":{"type":"integer"}}}}},"meterDetails":{"type":"object","properties":{"msno":{"type":"string"},"sgc":{"type":"integer"},"krn":{"type":"integer"},"ti":{"type":"integer"}}}}}},"components/schemas/BalanceService":{"id":"components/schemas/BalanceService","kind":"json-schema","title":"BalanceService","data":{"type":"object","properties":{"balance":{"type":"number","description":"Current balance for this service."},"type":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Service type name (e.g. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"prepaid-electricity"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":")."},"children":[]}]}]}]},"service_specification":{"type":"string","description":"Municipality identifier for this service slot."},"nTransactions":{"type":"integer","description":"Total number of transactions recorded against this service."},"receipts":{"type":"array","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Transactions within the requested period. Only present when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"printReceipts"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"$ref":"#/components/schemas/VasReceipt"}}}}},"components/schemas/VasReceipt":{"id":"components/schemas/VasReceipt","kind":"json-schema","title":"VasReceipt","data":{"type":"object","properties":{"transactionId":{"type":"string"},"type":{"type":"string","enum":["topup","deposited"]},"timestamp":{"type":"integer","format":"int64"},"amount":{"type":"number"},"meterNumber":{"type":"string","nullable":true},"receipt":{"type":"string","nullable":true}}}},"components/schemas/ReceiptsConfiguration":{"id":"components/schemas/ReceiptsConfiguration","kind":"json-schema","title":"ReceiptsConfiguration","data":{"type":"object","required":["from"],"properties":{"from":{"type":"integer","format":"int64","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"UNIX timestamp (ms) – start of the period."},"children":[]}]}]}]},"to":{"type":"integer","format":"int64","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"UNIX timestamp (ms) – end of the period. Defaults to now if omitted."},"children":[]}]}]}]}}}},"components/schemas/BalanceResponse":{"id":"components/schemas/BalanceResponse","kind":"json-schema","title":"BalanceResponse","data":{"type":"object","properties":{"balance":{"type":"number","description":"Total balance across all consumed prepaid VAS services."},"payments":{"type":"object","properties":{"lastPaymentValue":{"type":"number"},"nPayments":{"type":"integer"},"paymentsTotal":{"type":"number"}}},"services":{"type":"array","description":"Balance breakdown per prepaid service.","items":{"$ref":"#/components/schemas/BalanceService"}},"timestamp":{"type":"integer","format":"int64"}}}},"components/schemas/ErrorMessage":{"id":"components/schemas/ErrorMessage","kind":"json-schema","title":"ErrorMessage","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unified error type returned in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"error"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field of all Traffic Fine responses when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}},"components/schemas/ErrorMessagePayment":{"id":"components/schemas/ErrorMessagePayment","kind":"json-schema","title":"ErrorMessagePayment","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Unified error type returned in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"error"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field of all Traffic Fine responses when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"1"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"properties":{"code":{"type":"integer","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error code."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"| Code | Meaning | |------|---------| | 1 | Authentication failed | | 2 | Service unavailable – try again; contact support if it persists | | 3 | Service error – contact support | | 5 | Invalid ID | | 6 | ID must be numeric | | 7 | ID number check digit must be valid | | 8 | The identified infringer does not exist | | 9 | No infringement found for the identification type or number | | 10 | The check digit of the infringement notice number must be valid | | 11 | The infringement notice number must be payable at a registering authority | | 12 | The infringement notice number does not exist | | 13 | The infringement notice number does not exist | | 14 | The infringement notice number may not be in status 10 (court case) | | 15 | Elected to be tried in court with a successful court application status | | 16 | Transaction not allowed – nomination of driver is pending | | 17 | Partially paid fine must be settled at a registering authority or DLTS | | 18 | The infringement may not be in status 13 (partially paid) | | 23 | Validation error |"},"children":[]}]}]}],"example":9},"message":{"type":"string","description":"Well-explained error message.","example":"No infringement found for the provided ID number."},"validationMessage":{"type":"array","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Descriptive list of validation error messages. Present when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"code"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"23"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"items":{"type":"string"}}}}},"components/schemas/IssAuthority":{"id":"components/schemas/IssAuthority","kind":"json-schema","title":"IssAuthority","data":{"type":"object","properties":{"code":{"type":"string","description":"Authority code.","example":"4065"},"description":{"type":"string","description":"Authority name.","example":"GP Dept of Community Safety."}}}},"components/schemas/InfringementLocation":{"id":"components/schemas/InfringementLocation","kind":"json-schema","title":"InfringementLocation","data":{"type":"object","properties":{"cityTown":{"type":"string","description":"City or town where the infringement took place.","example":"JOHANNESBURG"},"issAuthority":{"$ref":"#/components/schemas/IssAuthority"},"streetName":{"type":"string","description":"Street on which the infringement took place.","example":"N1"},"suburb":{"type":"string","description":"Suburb in which the infringement was recorded.","example":"JOHANNESBURG"}}}},"components/schemas/InfringementCharge":{"id":"components/schemas/InfringementCharge","kind":"json-schema","title":"InfringementCharge","data":{"type":"object","properties":{"classification":{"type":"string","description":"Fine classification.","example":"Operated a vehicle without displaying..."},"demeritPoints":{"type":"integer","description":"Demerit points tied to this infringement.","example":0},"description":{"type":"string","description":"Detailed description of the charge.","example":"Operated a vehicle without displaying the licence disc of said vehicle"}}}},"components/schemas/InfringementDetail":{"id":"components/schemas/InfringementDetail","kind":"json-schema","title":"InfringementDetail","data":{"type":"object","properties":{"vehicleLicenseNumber":{"type":"string","description":"Licence number of the vehicle that infringed.","example":"JR47HJGP"},"noticeNumber":{"type":"string","description":"Notice number tied to the infringement.","example":"0100110373510309"},"charge":{"$ref":"#/components/schemas/InfringementCharge"},"date":{"type":"string","description":"Date on which the infringement took place (YYYY-MM-DD).","example":"2023-01-22"},"time":{"type":"string","description":"Time at which the infringement took place (hh:mm:ss).","example":"10:38:00"},"location":{"$ref":"#/components/schemas/InfringementLocation"},"netFineAmnt":{"type":"number","description":"Net fine amount for this infringement.","example":560},"vendorFeeAmnt":{"type":"number","description":"Vendor processing fee for this infringement.","example":14},"grossAmnt":{"type":"number","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Total amount to charge the customer (net + vendor fee)."},"children":[]}]}]}],"example":574},"isPaid":{"type":"boolean","description":"Whether this infringement has already been paid.","example":false}}}},"components/schemas/QueryByIdNumberResult":{"id":"components/schemas/QueryByIdNumberResult","kind":"json-schema","title":"QueryByIdNumberResult","data":{"type":"object","properties":{"idNumber":{"type":"string","description":"The ID number used in the query.","example":"9710226013089"},"hasFinesToPay":{"type":"boolean","description":"Whether there are outstanding fines for this ID.","example":true},"netFinesAmnt":{"type":"number","description":"Total net amount for all outstanding fines.","example":560},"vendorFeeAmnt":{"type":"number","description":"Total vendor processing fee for all outstanding fines.","example":14},"grossAmnt":{"type":"number","description":"Total amount to charge the customer across all outstanding fines.","example":574},"infringements":{"type":"array","description":"List of infringements tied to the ID number.","items":{"$ref":"#/components/schemas/InfringementDetail"}}}}},"components/schemas/QueryByNoticeNumberResult":{"id":"components/schemas/QueryByNoticeNumberResult","kind":"json-schema","title":"QueryByNoticeNumberResult","data":{"type":"object","properties":{"noticeNumber":{"type":"string","description":"The notice number used in the query.","example":"0100110373510309"},"hasFinesToPay":{"type":"boolean","description":"Whether there are outstanding fines for this notice number.","example":true},"netFinesAmnt":{"type":"number","description":"Total net amount for all outstanding fines.","example":560},"vendorFeeAmnt":{"type":"number","description":"Total vendor processing fee.","example":14},"grossAmnt":{"type":"number","description":"Total amount to charge the customer.","example":574},"infringements":{"type":"array","description":"Infringements tied to the notice number.","items":{"$ref":"#/components/schemas/InfringementDetail"}}}}},"components/schemas/MarkFineAsPaidCommand":{"id":"components/schemas/MarkFineAsPaidCommand","kind":"json-schema","title":"MarkFineAsPaidCommand","data":{"type":"object","required":["noticeNumber","amount","currency"],"properties":{"noticeNumber":{"type":"string","description":"Notice number of the fine being marked as paid.","example":"0100110373510309"},"amount":{"type":"number","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Gross amount paid for this fine (net fine + vendor fee)."},"children":[]}]}]}],"example":574},"currency":{"type":"string","description":"Currency code.","example":"ZAR"}}}},"components/schemas/PaidFine":{"id":"components/schemas/PaidFine","kind":"json-schema","title":"PaidFine","data":{"type":"object","properties":{"noticeNumber":{"type":"string","description":"Notice number of the paid fine.","example":"240990007600759"},"invoiceNumber":{"type":"string","description":"AARTO invoice number.","example":"47280000005V"},"receiptNumber":{"type":"string","description":"AARTO receipt number.","example":"4728000000N1"},"netFinesAmntPaid":{"type":"number","description":"Net fine amount attributed to this fine.","example":1600},"vendorFeeAmntPaid":{"type":"number","description":"Vendor fee attributed to this fine.","example":14},"grossAmntPaid":{"type":"number","description":"Total amount paid for this fine.","example":1614}}}},"components/schemas/MarkTrafficFinesAsPaidResult":{"id":"components/schemas/MarkTrafficFinesAsPaidResult","kind":"json-schema","title":"MarkTrafficFinesAsPaidResult","data":{"type":"object","properties":{"orderId":{"type":"string","description":"Whoosh order ID referencing the complete transaction.","example":"b89a1717-5266-43c7-93cc-7e51c0fe01fb"},"grossAmntPaid":{"type":"number","description":"Total gross amount paid across all fines in this transaction.","example":1614},"netFinesAmntPaid":{"type":"number","description":"Total net fine amount paid.","example":1600},"vendorFeeAmntPaid":{"type":"number","description":"Total vendor fee paid.","example":14},"merchantFeePaid":{"type":"number","description":"Merchant fee charged for this transaction.","example":7.5},"finesPaid":{"type":"array","description":"Breakdown of each fine paid including AARTO receipt details.","items":{"$ref":"#/components/schemas/PaidFine"}}}}},"components/schemas/ValidatePaymentResult":{"id":"components/schemas/ValidatePaymentResult","kind":"json-schema","title":"ValidatePaymentResult","data":{"type":"object","properties":{"amntToPay":{"type":"number","description":"Correct gross amount that should be charged for the selected fines.","example":574},"difference":{"type":"number","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Difference between the proposed amount and the correct amount. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"0"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" means the proposed amount is correct. If the proposed amount is less than the amtToPay then this value will be negative"},"children":[]}]}]}],"example":0},"isCorrectAmount":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if the proposed amount matches the expected gross amount for the selected fines."},"children":[]}]}]}],"example":true}}}},"components/schemas/TransactionDto":{"id":"components/schemas/TransactionDto","kind":"json-schema","title":"TransactionDto","data":{"type":"object","description":"A single MPGS transaction returned in the end-of-day ledger.","properties":{"paymentReference":{"type":"string","description":"Payment reference for the transaction.","example":"ORD-20240401-001"},"transactionStatus":{"type":"string","description":"MPGS transaction status.","example":"SUCCESS"},"transactionAmount":{"type":"number","description":"Transaction amount.","example":150},"transactionCurrency":{"type":"string","description":"ISO 4217 currency code.","example":"ZAR"},"transactionTime":{"type":"string","format":"date-time","description":"ISO timestamp of when the transaction occurred.","example":"2024-04-01T14:32:00+02:00"}}}},"components/schemas/VerificationErrorDto":{"id":"components/schemas/VerificationErrorDto","kind":"json-schema","title":"VerificationErrorDto","data":{"type":"object","description":"A reconciliation or verification error.","properties":{"message":{"type":"string","description":"Human-readable error details.","example":"Transaction amount mismatch detected."}}}},"components/schemas/EndOfDayLedgerResponse":{"id":"components/schemas/EndOfDayLedgerResponse","kind":"json-schema","title":"EndOfDayLedgerResponse","data":{"type":"object","description":"Response body for the End of Day Ledger endpoint.","properties":{"success":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when the request was processed successfully."},"children":[]}]}]}],"example":true},"merchantId":{"type":"string","description":"Merchant identifier derived from the API key.","example":"MERCH-001"},"timezone":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Always "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Africa/Johannesburg"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":"Africa/Johannesburg"},"businessDate":{"type":"string","format":"date","description":"The reconciled business date (YYYY-MM-DD).","example":"2024-04-01"},"periodStart":{"type":"string","format":"date-time","description":"Start of the business day as an ISO timestamp.","example":"2024-04-01T00:00:00+02:00"},"periodEnd":{"type":"string","format":"date-time","description":"End of the business day as an ISO timestamp.","example":"2024-04-01T23:59:59+02:00"},"generatedOn":{"type":"string","format":"date-time","description":"Timestamp when this response was generated.","example":"2024-04-02T06:05:00+02:00"},"transactionCount":{"type":"integer","description":"Total number of transactions returned.","example":42},"totalAmount":{"type":"number","description":"Sum of all transaction amounts.","example":8750},"verificationErrorCount":{"type":"integer","description":"Number of verification errors encountered.","example":0},"transactions":{"type":"array","description":"List of MPGS transactions for the business day.","items":{"$ref":"#/components/schemas/TransactionDto"}},"verificationErrors":{"type":"array","description":"List of verification errors, if any.","items":{"$ref":"#/components/schemas/VerificationErrorDto"}}}}},"components/schemas/OrderPaymentStatusResponse":{"id":"components/schemas/OrderPaymentStatusResponse","kind":"json-schema","title":"OrderPaymentStatusResponse","data":{"type":"object","description":"Response body for the Order Payment Status endpoint.","properties":{"success":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when the request was processed successfully."},"children":[]}]}]}],"example":true},"merchantId":{"type":"string","description":"Merchant identifier derived from the API key.","example":"MERCH-001"},"orderId":{"type":"string","description":"The order ID that was checked.","example":"ORD-20240401-001"},"checkedOn":{"type":"string","format":"date-time","description":"Timestamp when the status verification was performed.","example":"2024-04-02T06:10:00+02:00"},"paymentStatus":{"type":"string","description":"Overall payment status for the order.","enum":["PAID","PENDING","FAILED","NO_ATTEMPT","VERIFICATION_ERROR"],"example":"PAID"},"paymentReference":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Primary transaction reference (same as "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"orderId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":")."},"children":[]}]}]}],"example":"ORD-20240401-001"},"transactionStatus":{"type":"string","description":"Raw MPGS transaction status.","example":"SUCCESS"},"transactionAmount":{"type":"number","description":"Transaction amount.","example":150},"transactionCurrency":{"type":"string","description":"ISO 4217 currency code.","example":"ZAR"},"transactionTime":{"type":"string","format":"date-time","description":"Timestamp of the transaction.","example":"2024-04-01T14:32:00+02:00"},"verificationErrors":{"type":"array","description":"Verification errors, if any.","items":{"$ref":"#/components/schemas/VerificationErrorDto"}}}}},"components/schemas/OrderPaymentStatusErrorResponse":{"id":"components/schemas/OrderPaymentStatusErrorResponse","kind":"json-schema","title":"OrderPaymentStatusErrorResponse","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error response body for the Order Payment Status endpoint (400, 403, 404 and 500). Same shape as "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"OrderPaymentStatusResponse"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" plus "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"referrer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", which are always empty strings on error."},"children":[]}]}]}],"properties":{"success":{"type":"boolean","example":false},"id":{"type":"string","example":""},"referrer":{"type":"string","example":""},"merchantId":{"type":"string"},"orderId":{"type":"string"},"checkedOn":{"type":"string","format":"date-time"},"paymentStatus":{"type":"string","enum":["VERIFICATION_ERROR"],"example":"VERIFICATION_ERROR"},"paymentReference":{"type":"string","example":""},"transactionStatus":{"type":"string","example":"UNKNOWN"},"transactionAmount":{"type":"number","example":0},"transactionCurrency":{"type":"string","example":"ZAR"},"transactionTime":{"type":"string","format":"date-time"},"verificationErrors":{"type":"array","description":"Always contains exactly one entry describing the failure.","items":{"$ref":"#/components/schemas/VerificationErrorDto"}}}}},"components/schemas/LineItemDto":{"id":"components/schemas/LineItemDto","kind":"json-schema","title":"LineItemDto","data":{"type":"object","description":"An individual product or service line item within an order.","required":["id","productId","name","unitPrice","currency","quantity"],"properties":{"id":{"type":"string","description":"Line item ID (internal reference).","example":"MOG-123456"},"productId":{"type":"string","description":"Product or service ID.","example":"municipal-bill"},"name":{"type":"string","description":"Display name of the item shown on checkout and receipts.","example":"Municipal Bill Payment"},"description":{"type":"string","nullable":true,"description":"Optional item description shown on checkout and receipts.","example":"Municipal bill payment for MOG-123456 of amount 1200"},"unitPrice":{"type":"number","description":"Price per unit.","example":1200},"currency":{"type":"string","description":"ISO 4217 currency code. Must match the order currency.","enum":["ZAR"],"example":"ZAR"},"quantity":{"type":"number","description":"Number of units purchased.","example":1},"lineTotal":{"type":"number","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Total for this line item ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"unitPrice × quantity"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":")."},"children":[]}]}]}],"example":1200},"vat":{"type":"number","nullable":true,"description":"VAT percentage applied to this line item.","example":0},"vatAmount":{"type":"number","nullable":true,"description":"VAT amount for this line item.","example":0},"discount":{"type":"array","nullable":true,"description":"Discounts applied to this line item.","items":{"type":"number"}},"imageUrls":{"type":"array","nullable":true,"description":"Product image URLs for UI display.","items":{"type":"string","format":"uri"}},"descriptions":{"type":"array","nullable":true,"description":"Additional descriptions for UI display.","items":{"type":"string"}}}}},"components/schemas/OrderDto":{"id":"components/schemas/OrderDto","kind":"json-schema","title":"OrderDto","data":{"type":"object","description":"Commercial transaction details for the order being submitted for payment.","required":["id","date","orderDescription","orderTotal","currency","products"],"properties":{"id":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Vendor's internal order ID. Maps to "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"order.reference"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" in the Whoosh Payment Gateway."},"children":[]}]}]}],"example":"TRF-20240215-001"},"refferer":{"type":"string","nullable":true,"description":"Original order reference for reference mapping.","example":"TRF-20240215-001"},"date":{"type":"string","format":"date-time","description":"Order creation timestamp.","example":"2024-02-15T10:30:00Z"},"dueDate":{"type":"string","format":"date-time","nullable":true,"description":"Optional due date for the order.","example":"2024-02-15T10:30:00Z"},"orderDescription":{"type":"string","description":"Description shown on checkout and receipts.","example":"Municipal Bill Payment"},"orderTotal":{"type":"number","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Total payable amount. Maps to "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"order.amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" in the Whoosh Payment Gateway."},"children":[]}]}]}],"example":2450},"vatTotal":{"type":"number","nullable":true,"description":"VAT portion of the order total.","example":0},"currency":{"type":"string","description":"ISO 4217 transaction currency.","enum":["ZAR"],"example":"ZAR"},"products":{"type":"array","description":"Order line items used for receipts, reporting, and customer transparency.","items":{"$ref":"#/components/schemas/LineItemDto"}}}}},"components/schemas/PutOrderCommand":{"id":"components/schemas/PutOrderCommand","kind":"json-schema","title":"PutOrderCommand","data":{"type":"object","description":"Request body for creating an order and generating a Whoosh Payment Gateway hosted checkout URL.","required":["merchantId","order","redirectSuccess","redirectCancel"],"properties":{"merchantId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Identifies the merchant creating the order. Use "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"staging"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for the test environment. A production "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" will be issued before go-live."},"children":[]}]}]}],"example":"staging"},"order":{"$ref":"#/components/schemas/OrderDto"},"redirectSuccess":{"type":"string","format":"uri","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL the customer is redirected to after a successful payment. Maps to "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"successUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" in the Whoosh Payment Gateway."},"children":[]}]}]}],"example":"https://placeholder.com"},"redirectCancel":{"type":"string","format":"uri","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL the customer is redirected to after cancellation or failure. Maps to "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"cancelUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" in the Whoosh Payment Gateway."},"children":[]}]}]}],"example":"https://placeholder.com"},"platform":{"type":"string","nullable":true,"description":"Source platform identifier used for reconciliation reporting.","example":"MOG"},"metadata":{"type":"object","nullable":true,"description":"Arbitrary key-value pairs stored by Whoosh for reporting. Not forwarded to the Whoosh Payment Gateway.","additionalProperties":true,"example":{"orgId":"TEST-ORG-001","userId":"JABS78t8ABK"}}}}},"components/schemas/PutOrderResponse":{"id":"components/schemas/PutOrderResponse","kind":"json-schema","title":"PutOrderResponse","data":{"type":"object","description":"Response returned after successfully creating an order.","properties":{"orderId":{"type":"string","description":"Internal Whoosh order ID.","example":"whoosh-order-abc123"},"referredId":{"type":"string","description":"Vendor's original order ID (echoed back).","example":"TRF-20240215-001"},"paymentPageUrl":{"type":"string","format":"uri","description":"Whoosh Payment Gateway hosted checkout URL to redirect the customer to for payment.","example":"https://payments.whoosh.example.com/pay/abc123"},"successCallback":{"type":"string","format":"uri","description":"Final success redirect URL.","example":"https://placeholder.com"},"failCallback":{"type":"string","format":"uri","description":"Final failure redirect URL.","example":"https://placeholder.com"}}}},"schema_28":{"kind":"json-schema","data":{"type":"object","required":["meterNumber"],"properties":{"meterNumber":{"type":"string","description":"Meter number to confirm.","example":"142567423303"},"municipality":{"$ref":"#/components/schemas/Municipality","description":"Municipality the meter belongs to. If omitted the system multi-casts to all known municipalities (slower)."},"amount":{"type":"number","description":"Intended purchase amount (used for credit pre-checking)."},"method":{"type":"string","enum":["cash","card"],"description":"Intended payment method."}}},"id":"schema_28"},"schema_29":{"kind":"json-schema","data":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelopeBoolean"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ConfirmCustomerResult"}}}]},"id":"schema_29"},"schema_30":{"kind":"json-schema","data":{"type":"object","properties":{"success":{"type":"boolean","example":false},"error":{"type":"string","example":"401-4 - Unauthorized. No API key set"}}},"id":"schema_30"},"schema_31":{"kind":"json-schema","data":{"type":"object","properties":{"success":{"type":"boolean","example":false},"error":{"type":"string","example":"999 - Internal server error"}}},"id":"schema_31"},"schema_32":{"kind":"json-schema","data":{"type":"object","required":["meterNumber","amount","method","municipality"],"properties":{"meterNumber":{"type":"string","example":"04235758721"},"municipality":{"$ref":"#/components/schemas/Municipality"},"amount":{"type":"number","example":400},"method":{"type":"string","enum":["cash","card"],"example":"cash"},"idempotency":{"type":"string","description":"Unique string to prevent duplicate vends. A second request with the same value will not result in a second transaction.","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}},"id":"schema_32"},"schema_33":{"kind":"json-schema","data":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelopeBoolean"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PurchaseElectricityResult"}}}]},"id":"schema_33"},"schema_34":{"kind":"json-schema","data":{"type":"object","properties":{"printReceipts":{"type":"boolean","default":false,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", include topup and vend receipts per service for the period defined in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"receipts"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"receipts":{"$ref":"#/components/schemas/ReceiptsConfiguration","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Required when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"printReceipts"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}}},"id":"schema_34"},"schema_35":{"kind":"json-schema","data":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelopeBoolean"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/BalanceResponse"}}}]},"id":"schema_35"},"schema_36":{"kind":"json-schema","data":{"type":"object","required":["accountNumber"],"properties":{"accountNumber":{"type":"string","description":"Account number to confirm.","example":"04235758721"},"municipality":{"$ref":"#/components/schemas/BillMunicipality","description":"Municipality the account belongs to. If omitted the system multi-casts to all known bill municipalities (slower)."},"amount":{"type":"number","description":"Intended payment amount (used for credit pre-checking)."},"method":{"type":"string","enum":["cash","card"],"description":"Intended payment method."}}},"id":"schema_36"},"schema_37":{"kind":"json-schema","data":{"type":"object","required":["accountNumber","amount","method","municipality","idempotency"],"properties":{"accountNumber":{"type":"string","description":"Account number of the postpaid bill to pay.","example":"04235758721"},"municipality":{"$ref":"#/components/schemas/BillMunicipality"},"amount":{"type":"number","example":400},"method":{"type":"string","enum":["cash","card"],"example":"cash"},"idempotency":{"type":"string","description":"Unique string to prevent duplicate payments. A second request with the same value will not result in a second transaction.","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"}}},"id":"schema_37"},"schema_38":{"kind":"json-schema","data":{"type":"object","properties":{"productID":{"type":"string"},"amount":{"type":"string"},"reference":{"type":"string"}}},"id":"schema_38"},"schema_39":{"kind":"json-schema","data":{"type":"object","required":["idNumber"],"properties":{"idNumber":{"type":"string","description":"South African national ID number or Foreign ID number.","example":"9710226013089"},"type":{"type":"string","enum":["local","foreign"],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Optional parameter to determine whether the ID you are searching with is local or foreing. Please note that foreign ID is not the same as a passport number. If left empty it will default to "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"local"},"children":[]}]}]}],"example":"foreign"}}},"id":"schema_39"},"schema_40":{"kind":"json-schema","data":{"type":"object","properties":{"success":{"type":"boolean","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = success, "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"false"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" = error."},"children":[]}]}]}]},"idNumber":{"nullable":true,"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The ID number used in the query. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if the type was foreign"},"children":[]}]}]}]},"foreignId":{"nullable":true,"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The foreign ID number that was used in the query. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" if the type was local or type was empty"},"children":[]}]}]}]},"result":{"nullable":true,"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Query result. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"false"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/QueryByIdNumberResult"}]},"error":{"nullable":true,"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error details. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/ErrorMessage"}]}}},"id":"schema_40"},"schema_41":{"kind":"json-schema","data":{"type":"object","properties":{"success":{"type":"boolean","example":false},"idNumber":{"type":"string"},"error":{"type":"object","allOf":[{"$ref":"#/components/schemas/ErrorMessage"}]}}},"id":"schema_41"},"schema_42":{"kind":"json-schema","data":{"type":"object","required":["brn"],"properties":{"idNumber":{"type":"string","description":"Business registration number.","example":"0402555070058"}}},"id":"schema_42"},"schema_43":{"kind":"json-schema","data":{"type":"object","properties":{"success":{"type":"boolean"},"brn":{"type":"string"},"result":{"nullable":true,"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Query result. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"false"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/QueryByIdNumberResult"}]},"error":{"nullable":true,"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error details. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"true"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/ErrorMessage"}]}}},"id":"schema_43"},"schema_44":{"kind":"json-schema","data":{"type":"object","properties":{"success":{"type":"boolean","example":false},"brn":{"type":"string"},"error":{"type":"object","allOf":[{"$ref":"#/components/schemas/ErrorMessage"}]}}},"id":"schema_44"},"schema_45":{"kind":"json-schema","data":{"type":"object","required":["noticeNumber"],"properties":{"noticeNumber":{"type":"string","description":"AARTO notice number of the traffic fine.","example":"0100110373510309"}}},"id":"schema_45"},"schema_46":{"kind":"json-schema","data":{"type":"object","properties":{"success":{"type":"boolean"},"noticeNumber":{"type":"string","description":"The notice number used in the query."},"result":{"nullable":true,"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Query result. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"false"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/QueryByNoticeNumberResult"}]},"error":{"type":"object","nullable":true,"allOf":[{"$ref":"#/components/schemas/ErrorMessage"}]}}},"id":"schema_46"},"schema_47":{"kind":"json-schema","data":{"type":"object","properties":{"success":{"type":"boolean","example":false},"noticeNumber":{"type":"string"},"error":{"type":"object","allOf":[{"$ref":"#/components/schemas/ErrorMessage"}]}}},"id":"schema_47"},"schema_48":{"kind":"json-schema","data":{"type":"object","required":["paymentReference","paymentType","finesPaid"],"properties":{"paymentReference":{"type":"string","description":"Merchant-side reference for this order.","example":"myreference"},"paymentType":{"type":"string","enum":["CARD","EFT"],"example":"CARD"},"finesPaid":{"type":"array","items":{"$ref":"#/components/schemas/MarkFineAsPaidCommand"}}}},"id":"schema_48"},"schema_49":{"kind":"json-schema","data":{"type":"object","properties":{"success":{"type":"integer","enum":[0,1]},"amntProposed":{"type":"number","description":"The amount that was proposed for validation."},"reference":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentReference"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" echoed back."},"children":[]}]}]}]},"result":{"type":"object","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Query result. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"0"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/ValidatePaymentResult"}]},"error":{"type":"object","nullable":true,"allOf":[{"$ref":"#/components/schemas/ErrorMessagePayment"}]}}},"id":"schema_49"},"schema_50":{"kind":"json-schema","data":{"type":"object","properties":{"success":{"type":"integer","enum":[0]},"amntProposed":{"type":"number"},"reference":{"type":"string"},"error":{"type":"object","allOf":[{"$ref":"#/components/schemas/ErrorMessagePayment"}]}}},"id":"schema_50"},"schema_51":{"kind":"json-schema","data":{"type":"object","required":["paymentReference","paymentType","finesPaid"],"properties":{"paymentReference":{"type":"string","description":"Merchant-side reference to tie the result to an order.","example":"myreference"},"paymentType":{"type":"string","enum":["CARD","EFT"],"description":"How the transaction was paid.","example":"CARD"},"finesPaid":{"type":"array","description":"List of fines paid to the merchant to be cleared with AARTO.","items":{"$ref":"#/components/schemas/MarkFineAsPaidCommand"}}}},"id":"schema_51"},"schema_52":{"kind":"json-schema","data":{"type":"object","properties":{"success":{"type":"integer","enum":[0,1]},"reference":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentReference"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" echoed back."},"children":[]}]}]}]},"result":{"nullable":true,"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Transaction result. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"0"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/MarkTrafficFinesAsPaidResult"}]},"error":{"nullable":true,"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Error details. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"null"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"1"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/ErrorMessage"}]}}},"id":"schema_52"},"schema_53":{"kind":"json-schema","data":{"type":"object","properties":{"success":{"type":"integer","enum":[0]},"reference":{"type":"string"},"error":{"type":"object","allOf":[{"$ref":"#/components/schemas/ErrorMessage"}]}}},"id":"schema_53"},"schema_54":{"kind":"json-schema","data":{"type":"object","properties":{"status":{"type":"integer","example":400},"message":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"One of: \"Account is not a merchant account\" (merchant exists but is not of merchant type); \"Incomplete order details! Amount and description are required and cannot be empty\" (missing/empty "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"order.orderTotal"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"order.orderDescription"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"); \"Order with ID {referrer} has already been registered on merchant {merchantId}\" (an order with the same "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"refferer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/"},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" was already put for this merchant)."},"children":[]}]}]}]},"data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Always an empty object in practice, since the underlying "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Error"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"'s "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"message"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"/"},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"stack"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" are non-enumerable and are dropped on JSON serialization."},"children":[]}]}]}],"example":{}}}},"id":"schema_54"},"schema_55":{"kind":"json-schema","data":{"type":"object","required":["orderId"],"properties":{"orderId":{"type":"string","description":"The order ID to verify payment status for.","example":"ORD-20240401-001"}}},"id":"schema_55"}},"exampleStore":{"paths/~1v2~1Electricity~1ConfirmCustomer/post/requestBody/content/application~1json/example":{"value":{"meterNumber":"0171001182","municipality":"tshwane_prepaid"},"id":"paths/~1v2~1Electricity~1ConfirmCustomer/post/requestBody/content/application~1json/example"},"paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/200/content/application~1json/example":{"value":{"success":true,"data":{"exists":true,"municipality":"tshwane_prepaid","customer":{"id":"142567423303","meter_number":"142567423303","meter_source":"tshwane_prepaid","name":"TSHITAMBA","phone_number":null,"email":null,"provider_specific":{"token":"Mr. MT TSHITAMBA\n72 MONOKANE CRESCENT\nLOTUS GARDENS X02\n...","name":"TSHITAMBA","firstName":"MT","pocName":"002303736","minLimit":3000,"maxLimit":0,"tarrifIndex":-1,"sgc":225,"krn":1,"keyExpiryNumber":255,"tokenTechnology":2,"units":0}}}},"id":"paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/200/content/application~1json/example"},"paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/401/content/application~1json/example"},"paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/500/content/application~1json/example":{"value":{"success":false,"error":"999 - Internal server error"},"id":"paths/~1v2~1Electricity~1ConfirmCustomer/post/responses/500/content/application~1json/example"},"paths/~1v2~1Electricity~1Purchase/post/requestBody/content/application~1json/example":{"value":{"meterNumber":"04235758721","municipality":"zeerust_prepaid","amount":400,"method":"cash","idempotency":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"id":"paths/~1v2~1Electricity~1Purchase/post/requestBody/content/application~1json/example"},"paths/~1v2~1Electricity~1Purchase/post/responses/200/content/application~1json/example":{"value":{"success":true,"data":{"name":"MR. A J KWINDA","amount":50,"meter":"81114926223","date":"22 Mar 2026 3:24:11 PM","timestamp":1774193051166,"token":"        City of Tshwane\n        ---------------\nReceipt No.: 109707/29\n...","tokenCount":1,"units":2.9,"receipt":null,"municipality":"tshwane_prepaid","mode":0,"details":{"balance":1,"code":0,"date":"22 Mar 2026","desc":"OK","message":"-","refno":"7128f265-dc3f-4666-a700-161d50037283","time":"3:24:11 PM","trDetails":{"amt":50,"date":"22 Mar 2026","no":"109707/871224","status":"OK","time":"3:24:11 PM","vat":6.52},"voucher":{"amounts":[{"desc":"Arrears","amt":0,"outstanding":0},{"desc":"VAT","amt":6.52}],"elecamt":43.48,"meterno":"07/07/07064470565","name":"MR. A J KWINDA","receiptdesc":"-","receiptno":"109707/871224","receiver":"City of TSHWANE","token":[{"token":"1529 6469 6769 5938 000","info":"Electricity Credit(2.9)","type":"CRED"}],"units":2.9,"vatno":4000142267}},"meterDetails":{"msno":"07/07/07064470565","sgc":225,"krn":2,"ti":1}}},"id":"paths/~1v2~1Electricity~1Purchase/post/responses/200/content/application~1json/example"},"paths/~1v2~1Electricity~1Purchase/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v2~1Electricity~1Purchase/post/responses/401/content/application~1json/example"},"paths/~1v2~1Electricity~1Purchase/post/responses/500/content/application~1json/example":{"value":{"success":false,"error":"999 - Internal server error"},"id":"paths/~1v2~1Electricity~1Purchase/post/responses/500/content/application~1json/example"},"paths/~1v1~1Merchant~1CheckBalance/post/requestBody/content/application~1json/example":{"value":{"printReceipts":false},"id":"paths/~1v1~1Merchant~1CheckBalance/post/requestBody/content/application~1json/example"},"paths/~1v1~1Merchant~1CheckBalance/post/responses/200/content/application~1json/example":{"value":{"success":true,"data":{"balance":-10908,"payments":{"lastPaymentValue":0,"nPayments":0,"paymentsTotal":0},"services":[{"balance":7668,"nTransactions":149,"type":"prepaid-electricity","service_specification":"tshwane_prepaid"},{"balance":944,"nTransactions":40,"type":"prepaid-electricity","service_specification":"mogale_prepaid"},{"balance":1910,"nTransactions":16,"type":"prepaid-electricity","service_specification":"zeerust_prepaid"},{"balance":40,"nTransactions":2,"type":"prepaid-electricity","service_specification":"eskom_prepaid"}],"timestamp":1774193070098}},"id":"paths/~1v1~1Merchant~1CheckBalance/post/responses/200/content/application~1json/example"},"paths/~1v1~1Merchant~1CheckBalance/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v1~1Merchant~1CheckBalance/post/responses/401/content/application~1json/example"},"paths/~1v1~1Merchant~1CheckBalance/post/responses/500/content/application~1json/example":{"value":{"success":false,"error":"999 - Internal server error"},"id":"paths/~1v1~1Merchant~1CheckBalance/post/responses/500/content/application~1json/example"},"paths/~1v2~1Bills~1ConfirmCustomer/post/requestBody/content/application~1json/example":{"value":{"accountNumber":"04235758721","municipality":"mogale_postpaid"},"id":"paths/~1v2~1Bills~1ConfirmCustomer/post/requestBody/content/application~1json/example"},"paths/~1v2~1Bills~1ConfirmCustomer/post/responses/200/content/application~1json/example":{"value":{"success":true,"data":{"exists":true,"municipality":"mogale_postpaid","customer":{"id":"04235758721","account_number":"04235758721","account_source":"mogale_postpaid","name":"MR. A J KWINDA","balance":1850,"last_update":"22 Mar 2026 3:24:11 PM","last_update_timestamp":1774193051166,"address":"72 MONOKANE CRESCENT, LOTUS GARDENS X02"}}},"id":"paths/~1v2~1Bills~1ConfirmCustomer/post/responses/200/content/application~1json/example"},"paths/~1v2~1Bills~1ConfirmCustomer/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v2~1Bills~1ConfirmCustomer/post/responses/401/content/application~1json/example"},"paths/~1v2~1Bills~1ConfirmCustomer/post/responses/500/content/application~1json/example":{"value":{"success":false,"error":"999 - Internal server error"},"id":"paths/~1v2~1Bills~1ConfirmCustomer/post/responses/500/content/application~1json/example"},"paths/~1v2~1Bills~1Purchase/post/requestBody/content/application~1json/example":{"value":{"accountNumber":"04235758721","municipality":"mogale_postpaid","amount":400,"method":"cash","idempotency":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"id":"paths/~1v2~1Bills~1Purchase/post/requestBody/content/application~1json/example"},"paths/~1v2~1Bills~1Purchase/post/responses/200/content/application~1json/example":{"value":{"success":true,"data":{"name":"MR. A J KWINDA","amount":400,"account_number":"04235758721","date":"22 Mar 2026 3:24:11 PM","timestamp":1774193051166,"balance":1850,"address":"72 MONOKANE CRESCENT, LOTUS GARDENS X02","municipality":"mogale_postpaid"}},"id":"paths/~1v2~1Bills~1Purchase/post/responses/200/content/application~1json/example"},"paths/~1v2~1Bills~1Purchase/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v2~1Bills~1Purchase/post/responses/401/content/application~1json/example"},"paths/~1v2~1Bills~1Purchase/post/responses/500/content/application~1json/example":{"value":{"success":false,"error":"999 - Internal server error"},"id":"paths/~1v2~1Bills~1Purchase/post/responses/500/content/application~1json/example"},"paths/~1v1~1VAS~1Confirm/post/requestBody/content/application~1json/example":{"value":{"productID":"dde67d01-73ff-4f20-acb2-212e1b22ffcd","amount":"500","reference":"[10,20,30,36,1,4,5,8]"},"id":"paths/~1v1~1VAS~1Confirm/post/requestBody/content/application~1json/example"},"paths/~1v1~1VAS~1Confirm/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v1~1VAS~1Confirm/post/responses/401/content/application~1json/example"},"paths/~1v1~1VAS~1Confirm/post/responses/500/content/application~1json/example":{"value":{"success":false,"error":"999 - Internal server error"},"id":"paths/~1v1~1VAS~1Confirm/post/responses/500/content/application~1json/example"},"paths/~1v1~1VAS~1Purchase/post/requestBody/content/application~1json/example":{"value":{"productID":"dde67d01-73ff-4f20-acb2-212e1b22ffcd","amount":"500","reference":"[10,20,30,36,1,4,5,8]"},"id":"paths/~1v1~1VAS~1Purchase/post/requestBody/content/application~1json/example"},"paths/~1v1~1VAS~1Purchase/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v1~1VAS~1Purchase/post/responses/401/content/application~1json/example"},"paths/~1v1~1VAS~1Purchase/post/responses/500/content/application~1json/example":{"value":{"success":false,"error":"999 - Internal server error"},"id":"paths/~1v1~1VAS~1Purchase/post/responses/500/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ViewByIDnumber/post/requestBody/content/application~1json/example":{"value":{"idNumber":"9710226013089","type":"local"},"id":"paths/~1v1~1TrafficFine~1ViewByIDnumber/post/requestBody/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/200/content/application~1json/example":{"value":{"success":true,"idNumber":"9710226013089","result":{"infringements":[{"vehicleLicenseNumber":"JR47HJGP","charge":{"classification":"Failed to license a vehicle with the ...","demeritPoints":1,"description":"Failed to license a vehicle in accordance with Chapter III Part I of Road Traffic Regulations 2000 with the appropriate registering authority"},"date":"2023-01-22","time":"10:38:00","noticeNumber":"0100110373510309","location":{"cityTown":"JOHANNESBURG","issAuthority":{"code":"4065","description":"GP Dept of Community Safety."},"streetName":"N1","suburb":"JOHANNESBURG"},"netFineAmnt":560,"vendorFeeAmnt":14,"grossAmnt":574,"isPaid":false}],"hasFinesToPay":true,"netFinesAmnt":560,"vendorFeeAmnt":14,"grossAmnt":574,"idNumber":"9710226013089"}},"id":"paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/200/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/401/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/500/content/application~1json/example":{"value":{"success":false,"idNumber":"9710226013089","error":{"code":999,"message":"999 - Internal server error","validationMessages":["999 - Internal server error"]}},"id":"paths/~1v1~1TrafficFine~1ViewByIDnumber/post/responses/500/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/requestBody/content/application~1json/example":{"value":{"brn":"F141235290013"},"id":"paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/requestBody/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses/401/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses/500/content/application~1json/example":{"value":{"success":false,"brn":"2019/123456/07","error":{"code":999,"message":"999 - Internal server error","validationMessages":["999 - Internal server error"]}},"id":"paths/~1v1~1TrafficFine~1ViewByBusinessRegistration/post/responses/500/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/requestBody/content/application~1json/example":{"value":{"noticeNumber":"0100110373510309"},"id":"paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/requestBody/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/200/content/application~1json/example":{"value":{"success":true,"noticeNumber":"0100110373510309","result":{"infringements":[{"vehicleLicenseNumber":"JR47HJGP","charge":{"classification":"Operated a vehicle without displaying...","demeritPoints":0,"description":"Operated a vehicle without displaying the licence disc of said vehicle"},"date":"2023-01-22","time":"10:38:00","noticeNumber":"0100110373510309","location":{"cityTown":"JOHANNESBURG","issAuthority":{"code":"4065","description":"GP Dept of Community Safety."},"streetName":"N1","suburb":"JOHANNESBURG"},"netFineAmnt":560,"vendorFeeAmnt":14,"grossAmnt":574,"isPaid":false}],"hasFinesToPay":true,"netFinesAmnt":560,"vendorFeeAmnt":14,"grossAmnt":574,"noticeNumber":"0100110373510309"}},"id":"paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/200/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/401/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/500/content/application~1json/example":{"value":{"success":false,"noticeNumber":"0100110373510309","error":{"code":999,"message":"999 - Internal server error","validationMessages":["999 - Internal server error"]}},"id":"paths/~1v1~1TrafficFine~1ViewByNoticeNumber/post/responses/500/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/requestBody/content/application~1json/example":{"value":{"paymentReference":"myreference","paymentType":"CARD","finesPaid":[{"noticeNumber":"0100110373510309","amount":574,"currency":"ZAR"}]},"id":"paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/requestBody/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/200/content/application~1json/example":{"value":{"success":1,"amntProposed":574,"reference":"myreference","result":{"amntToPay":574,"difference":0,"isCorrectAmount":true}},"id":"paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/200/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/401/content/application~1json/example"},"paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/500/content/application~1json/example":{"value":{"success":0,"amntProposed":0,"reference":"myreference","error":{"code":999,"message":"999 - Internal server error","validationMessages":["999 - Internal server error"]}},"id":"paths/~1v1~1TrafficFine~1ValidateMarkTrafficFinesAsPaid/post/responses/500/content/application~1json/example"},"paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/requestBody/content/application~1json/example":{"value":{"paymentReference":"myreference","paymentType":"CARD","finesPaid":[{"noticeNumber":"0240060000000458","amount":1614,"currency":"ZAR"}]},"id":"paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/requestBody/content/application~1json/example"},"paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/200/content/application~1json/example":{"value":{"success":1,"reference":"myreference","result":{"orderId":"b89a1717-5266-43c7-93cc-7e51c0fe01fb","grossAmntPaid":1614,"netFinesAmntPaid":1600,"vendorFeeAmntPaid":14,"merchantFeePaid":7.5,"finesPaid":[{"invoiceNumber":"47280000005V","netFinesAmntPaid":1600,"noticeNumber":"240990007600759","receiptNumber":"4728000000N1","vendorFeeAmntPaid":14,"grossAmntPaid":1614}]}},"id":"paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/200/content/application~1json/example"},"paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/401/content/application~1json/example"},"paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/500/content/application~1json/example":{"value":{"success":0,"reference":"myreference","error":{"code":999,"message":"999 - Internal server error","validationMessages":["999 - Internal server error"]}},"id":"paths/~1v1~1TrafficFine~1MarkTrafficFineAsPaid/post/responses/500/content/application~1json/example"},"paths/~1v2~1putOrder/post/requestBody/content/application~1json/example":{"value":{"merchantId":"staging","order":{"id":"TRF-20240215-001","refferer":"TRF-20240215-001","date":"2024-02-15T10:30:00Z","dueDate":"2024-02-15T10:30:00Z","orderDescription":"Municipal Bill Payment","orderTotal":2450,"vatTotal":0,"currency":"ZAR","products":[{"id":"MOG-123456","productId":"municipal-bill","name":"Municipal Bill Payment","description":"Municipal bill payment for MOG-123456 of amount 1200","unitPrice":1200,"lineTotal":1200,"vatAmount":0,"currency":"ZAR","quantity":1},{"id":"MOG-654321","productId":"municipal-bill","name":"Municipal Bill Payment","description":"Municipal bill payment for MOG-654321 of amount 1250","unitPrice":1250,"lineTotal":1250,"vatAmount":0,"currency":"ZAR","quantity":1}]},"redirectSuccess":"https://placeholder.com","redirectCancel":"https://placeholder.com","platform":"MOG","metadata":{"orgId":"TEST-ORG-001","userId":"JABS78t8ABK"}},"id":"paths/~1v2~1putOrder/post/requestBody/content/application~1json/example"},"paths/~1v2~1putOrder/post/responses/200/content/application~1json/example":{"value":{"orderId":"whoosh-order-abc123","referredId":"TRF-20240215-001","paymentPageUrl":"https://payments.whoosh.example.com/pay/abc123","successCallback":"https://placeholder.com","failCallback":"https://placeholder.com"},"id":"paths/~1v2~1putOrder/post/responses/200/content/application~1json/example"},"paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/notAMerchantAccount":{"value":{"status":400,"message":"Account is not a merchant account","data":{}},"key":"notAMerchantAccount","summary":"Account is not a merchant account","id":"paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/notAMerchantAccount"},"paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/incompleteOrderDetails":{"value":{"status":400,"message":"Incomplete order details! Amount and description are required and cannot be empty","data":{}},"key":"incompleteOrderDetails","summary":"Missing amount or description","id":"paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/incompleteOrderDetails"},"paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/duplicateOrder":{"value":{"status":400,"message":"Order with ID TRF-20240215-001 has already been registered on merchant staging","data":{}},"key":"duplicateOrder","summary":"Order already registered for this merchant","id":"paths/~1v2~1putOrder/post/responses/400/content/application~1json/examples/duplicateOrder"},"paths/~1v2~1putOrder/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v2~1putOrder/post/responses/401/content/application~1json/example"},"paths/~1v2~1putOrder/post/responses/500/content/application~1json/example":{"value":{"success":false,"error":"999 - Internal server error"},"id":"paths/~1v2~1putOrder/post/responses/500/content/application~1json/example"},"paths/~1v2~1whooshEndOfDayLedger/post/responses/200/content/application~1json/example":{"value":{"success":true,"merchantId":"MERCH-001","timezone":"Africa/Johannesburg","businessDate":"2024-04-01","periodStart":"2024-04-01T00:00:00+02:00","periodEnd":"2024-04-01T23:59:59+02:00","generatedOn":"2024-04-02T06:05:00+02:00","transactionCount":2,"totalAmount":300,"verificationErrorCount":0,"transactions":[{"paymentReference":"ORD-20240401-001","transactionStatus":"SUCCESS","transactionAmount":150,"transactionCurrency":"ZAR","transactionTime":"2024-04-01T10:15:00+02:00"},{"paymentReference":"ORD-20240401-002","transactionStatus":"SUCCESS","transactionAmount":150,"transactionCurrency":"ZAR","transactionTime":"2024-04-01T14:32:00+02:00"}],"verificationErrors":[]},"id":"paths/~1v2~1whooshEndOfDayLedger/post/responses/200/content/application~1json/example"},"paths/~1v2~1whooshEndOfDayLedger/post/responses/400/content/application~1json/example":{"value":{"success":false,"merchantId":"","timezone":"Africa/Johannesburg","businessDate":"2024-04-01","periodStart":"2024-04-01T00:00:00+02:00","periodEnd":"2024-04-01T23:59:59+02:00","generatedOn":"2024-04-02T06:05:00+02:00","transactionCount":0,"totalAmount":0,"verificationErrorCount":1,"transactions":[],"verificationErrors":[{"message":"Missing merchantId in request body."}]},"id":"paths/~1v2~1whooshEndOfDayLedger/post/responses/400/content/application~1json/example"},"paths/~1v2~1whooshEndOfDayLedger/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v2~1whooshEndOfDayLedger/post/responses/401/content/application~1json/example"},"paths/~1v2~1whooshEndOfDayLedger/post/responses/403/content/application~1json/example":{"value":{"success":false,"merchantId":"MERCH-001","timezone":"Africa/Johannesburg","businessDate":"2024-04-01","periodStart":"2024-04-01T00:00:00+02:00","periodEnd":"2024-04-01T23:59:59+02:00","generatedOn":"2024-04-02T06:05:00+02:00","transactionCount":0,"totalAmount":0,"verificationErrorCount":1,"transactions":[],"verificationErrors":[{"message":"Provided merchantId does not match the authenticated API key and is not a registered sub-merchant."}]},"id":"paths/~1v2~1whooshEndOfDayLedger/post/responses/403/content/application~1json/example"},"paths/~1v2~1whooshEndOfDayLedger/post/responses/404/content/application~1json/example":{"value":{"success":false,"merchantId":"MERCH-001","timezone":"Africa/Johannesburg","businessDate":"2024-04-01","periodStart":"2024-04-01T00:00:00+02:00","periodEnd":"2024-04-01T23:59:59+02:00","generatedOn":"2024-04-02T06:05:00+02:00","transactionCount":0,"totalAmount":0,"verificationErrorCount":1,"transactions":[],"verificationErrors":[{"message":"No MPGS channel configured for merchant MERCH-001"}]},"id":"paths/~1v2~1whooshEndOfDayLedger/post/responses/404/content/application~1json/example"},"paths/~1v2~1whooshEndOfDayLedger/post/responses/500/content/application~1json/example":{"value":{"success":false,"error":"999 - Internal server error"},"id":"paths/~1v2~1whooshEndOfDayLedger/post/responses/500/content/application~1json/example"},"paths/~1v2~1whooshCheckOrderPaymentStatus/post/requestBody/content/application~1json/example":{"value":{"orderId":"ORD-20240401-001"},"id":"paths/~1v2~1whooshCheckOrderPaymentStatus/post/requestBody/content/application~1json/example"},"paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/200/content/application~1json/example":{"value":{"success":true,"merchantId":"MERCH-001","orderId":"ORD-20240401-001","checkedOn":"2024-04-02T06:10:00+02:00","paymentStatus":"PAID","paymentReference":"ORD-20240401-001","transactionStatus":"SUCCESS","transactionAmount":150,"transactionCurrency":"ZAR","transactionTime":"2024-04-01T14:32:00+02:00","verificationErrors":[]},"id":"paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/200/content/application~1json/example"},"paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/400/content/application~1json/example":{"value":{"success":false,"id":"","referrer":"","merchantId":"","orderId":"","checkedOn":"2024-04-02T06:10:00+02:00","paymentStatus":"VERIFICATION_ERROR","paymentReference":"","transactionStatus":"UNKNOWN","transactionAmount":0,"transactionCurrency":"ZAR","transactionTime":"2024-04-02T06:10:00+02:00","verificationErrors":[{"message":"Missing merchantId or orderId in request body."}]},"id":"paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/400/content/application~1json/example"},"paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/401/content/application~1json/example":{"value":{"success":false,"error":"401-4 - Unauthorized. No API key set"},"id":"paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/401/content/application~1json/example"},"paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/403/content/application~1json/example":{"value":{"success":false,"id":"","referrer":"","merchantId":"MERCH-001","orderId":"ORD-20240401-001","checkedOn":"2024-04-02T06:10:00+02:00","paymentStatus":"VERIFICATION_ERROR","paymentReference":"","transactionStatus":"UNKNOWN","transactionAmount":0,"transactionCurrency":"ZAR","transactionTime":"2024-04-02T06:10:00+02:00","verificationErrors":[{"message":"Provided merchantId does not match the authenticated API key and is not a registered sub-merchant."}]},"id":"paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/403/content/application~1json/example"},"paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/404/content/application~1json/example":{"value":{"success":false,"id":"","referrer":"","merchantId":"MERCH-001","orderId":"ORD-20240401-001","checkedOn":"2024-04-02T06:10:00+02:00","paymentStatus":"VERIFICATION_ERROR","paymentReference":"","transactionStatus":"UNKNOWN","transactionAmount":0,"transactionCurrency":"ZAR","transactionTime":"2024-04-02T06:10:00+02:00","verificationErrors":[{"message":"No order ORD-20240401-001 found for merchant MERCH-001."}]},"id":"paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/404/content/application~1json/example"},"paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/500/content/application~1json/example":{"value":{"success":false,"error":"999 - Internal server error"},"id":"paths/~1v2~1whooshCheckOrderPaymentStatus/post/responses/500/content/application~1json/example"}},"securitySchemeStore":{"ApiKeyAuth":{"id":"ApiKeyAuth","type":"apiKey","in":"header","paramName":"X-API-KEY"}},"servers":[{"url":"/_mock/openapi","isMockServer":true,"description":"Mock server"},{"url":"https://api-test.amabills.co.za/api","description":"Testing"},{"url":"https://api.amabills.co.za/api","description":"Production"}]},"options":{"codeSamples":{"languages":[]},"hideSidebar":true,"mockServer":{"url":"/_mock/openapi","position":"first","description":"Mock server"},"disableRouter":true,"downloadUrls":[{"url":"/_bundle/openapi.json?download"},{"url":"/_bundle/openapi.yaml?download"}],"excludeFromSearch":false,"specType":"openapi","markdocOptions":{"tags":{},"nodes":{},"components":{}},"metadata":{"title":"Amabills - Whoosh Core API","description":"The Whoosh Innovations Pty. Core API provides electricity vending and traffic fine services for South African municipalities.\n"}},"baseSlug":"/openapi","routesMapping":{}}