{"openapi":"3.1.0","info":{"title":"Pix QR Builder API","version":"0.1.0","description":"Pix QR Builder turns the public Pix BR Code rules into tools an agent can call. build_static_pix writes a static Pix payload from a Pix key, receiver name, city, optional amount and reference (txid), checks it again with a strict parser and returns a read-back (who is paid, where, how much) that the owner must confirm before the code is used. build_dynamic_pix_ref writes the payload of a dynamic...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://br-pix-qr.connectorbay.com/mcp.\n\nDisclaimer: General information only, not legal, tax, accounting or payment advice. Pix QR Builder is an independent tool: it is not affiliated with, endorsed by or operated by any government body, central bank, standards body or scheme operator. Rates, thresholds and rules change; check the cited official source and confirm with a qualified professional before you rely on a result.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/br-pix-qr/docs"},"termsOfService":"https://connectorbay.com/br-pix-qr/terms"},"servers":[{"url":"https://br-pix-qr.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/br-pix-qr/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/build_static_pix":{"post":{"operationId":"build_static_pix","summary":"Build a static Pix BR Code (copia e cola) from a Pix key, receiver name, city, optional amount, txid and note, re-check ","description":"Build a static Pix BR Code (copia e cola) from a Pix key, receiver name, city, optional amount, txid and note, re-check it with the strict parser and return a read-back for owner confirmation. Use for \"Make me a Pix code for R$ 150.00 to my Pix key, receiver Padaria Bom Pao in Sao Paulo, reference PED0042\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pix_key":{"description":"The receiver's Pix key exactly as registered: CPF or CNPJ digits only, +55 phone, e-mail or random key (UUID). Never looked up; only its format and check digits are checked","title":"Pix Key","type":"string"},"receiver_name":{"description":"Receiver name shown to the payer, at most 25 characters after accents are removed","title":"Receiver Name","type":"string"},"receiver_city":{"description":"Receiver city, at most 15 characters after accents are removed","title":"Receiver City","type":"string"},"amount":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Fixed amount in reais with a dot as decimal separator and at most 2 decimals (for example 100.50); leave out to let the payer type the amount. A comma or thousands separator is refused","title":"Amount"},"txid":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Reference label of the charge: 1 to 25 letters and digits (no spaces); leave out for the placeholder ***","title":"Txid"},"info":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional free text for the payer (infoAdicional), at most 72 characters and shorter when the key is long","title":"Info"},"recurrence_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional URL of the recurrence parameters (composite QR for recurring Pix), without https://, at most 77 characters","title":"Recurrence Url"},"truncate":{"default":false,"description":"true cuts a name, city or note that is too long instead of refusing it (the cut is reported)","title":"Truncate","type":"boolean"},"include_svg":{"default":false,"description":"true also returns the QR code as an SVG image (needs the optional qrcode package on the server)","title":"Include Svg","type":"boolean"}},"required":["pix_key","receiver_name","receiver_city"],"title":"build_static_pixArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/build_dynamic_pix_ref":{"post":{"operationId":"build_dynamic_pix_ref","summary":"Build the dynamic Pix BR Code from the payment-location URL issued by the owner's payment provider (no protocol prefix, ","description":"Build the dynamic Pix BR Code from the payment-location URL issued by the owner's payment provider (no protocol prefix, at most 77 characters), with a read-back. Use for \"My bank gave me this Pix payment URL: turn it into a Pix QR code payload\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"url":{"description":"Payment-location URL issued by the payment provider, with or without https:// (the prefix is removed), at most 77 characters without it","title":"Url","type":"string"},"receiver_name":{"description":"Receiver name, at most 25 characters after accents are removed","title":"Receiver Name","type":"string"},"receiver_city":{"description":"Receiver city, at most 15 characters after accents are removed","title":"Receiver City","type":"string"},"single_use":{"default":false,"description":"true marks the code as single use (point of initiation 12)","title":"Single Use","type":"boolean"},"recurrence_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional URL of the recurrence parameters; its host name must equal the payment URL host","title":"Recurrence Url"},"truncate":{"default":false,"description":"true cuts a name or city that is too long instead of refusing it","title":"Truncate","type":"boolean"},"include_svg":{"default":false,"description":"true also returns the QR code as an SVG image (needs the optional qrcode package)","title":"Include Svg","type":"boolean"}},"required":["url","receiver_name","receiver_city"],"title":"build_dynamic_pix_refArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/validate_pix_payload":{"post":{"operationId":"validate_pix_payload","summary":"Strictly check a Pix copia-e-cola payload: structure, lengths, fixed values, key format and CRC16; lists errors and warn","description":"Strictly check a Pix copia-e-cola payload: structure, lengths, fixed values, key format and CRC16; lists errors and warnings and a read-back of who it pays. Use for \"Is this Pix copia e cola string valid, and who does it pay?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"payload":{"description":"The full Pix BR Code text (copia e cola): starts with 000201 and ends with the four-character CRC","title":"Payload","type":"string"}},"required":["payload"],"title":"validate_pix_payloadArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/explain_pix_payload":{"post":{"operationId":"explain_pix_payload","summary":"Read a Pix payload field by field in plain language (kind, key type, receiver, amount, reference, recurrence) alongside ","description":"Read a Pix payload field by field in plain language (kind, key type, receiver, amount, reference, recurrence) alongside its validity. Use for \"Explain what every field of this Pix code means\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"payload":{"description":"The full Pix BR Code text (copia e cola): starts with 000201 and ends with the four-character CRC","title":"Payload","type":"string"}},"required":["payload"],"title":"explain_pix_payloadArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/compute_pix_crc":{"post":{"operationId":"compute_pix_crc","summary":"CRC-16/CCITT-FALSE (polynomial 0x1021, initial value 0xFFFF) of a Pix payload body ending in 6304, or of any text in raw","description":"CRC-16/CCITT-FALSE (polynomial 0x1021, initial value 0xFFFF) of a Pix payload body ending in 6304, or of any text in raw mode. Use for \"What CRC16 goes at the end of this Pix payload?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"payload":{"description":"Payload body that ends with 6304 (tag 63, length 04), or a full payload whose CRC is compared; in raw mode any text","title":"Payload","type":"string"},"raw":{"default":false,"description":"true computes the CRC over the text exactly as given (for example 123456789 gives 29B1)","title":"Raw","type":"boolean"}},"required":["payload"],"title":"compute_pix_crcArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/normalize_pix_text":{"post":{"operationId":"normalize_pix_text","summary":"Prepare a receiver name and city for a Pix code: remove accents, collapse spaces, optional upper case, cut to 25 and 15 ","description":"Prepare a receiver name and city for a Pix code: remove accents, collapse spaces, optional upper case, cut to 25 and 15 characters, and report every change. Use for \"My company name has accents and 31 characters: what goes into the Pix code?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"receiver_name":{"description":"Receiver name as the owner writes it (at most 200 characters; the result is cut to 25)","title":"Receiver Name","type":"string"},"receiver_city":{"description":"Receiver city as the owner writes it (at most 200 characters; the result is cut to 15)","title":"Receiver City","type":"string"},"uppercase":{"default":false,"description":"true converts to upper case (cosmetic; the manual's own sample keeps the name in mixed case)","title":"Uppercase","type":"boolean"},"truncate":{"default":true,"description":"true (default) cuts the text to the limits and reports it; false refuses text that is too long","title":"Truncate","type":"boolean"}},"required":["receiver_name","receiver_city"],"title":"normalize_pix_textArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/check_pix_key_format":{"post":{"operationId":"check_pix_key_format","summary":"Format and check-digit check of a Pix key (CPF, CNPJ including the alphanumeric format, +55 phone, e-mail, random key); ","description":"Format and check-digit check of a Pix key (CPF, CNPJ including the alphanumeric format, +55 phone, e-mail, random key); never looks the key up. Use for \"Is this a well-formed Pix key of the CNPJ type?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pix_key":{"description":"Pix key as it must appear in the code: digits only for CPF/CNPJ, +55 and digits for a phone, a random key with hyphens; at most 200 characters","title":"Pix Key","type":"string"}},"required":["pix_key"],"title":"check_pix_key_formatArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/pix_field_rules":{"post":{"operationId":"pix_field_rules","summary":"The Pix BR Code field rules (lengths, allowed characters, fixed values, CRC) each with its source, verification level an","description":"The Pix BR Code field rules (lengths, allowed characters, fixed values, CRC) each with its source, verification level and manual section. Use for \"What are the size limits of the name, city and txid fields of a Pix code?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"field":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Tag or path to look up, such as 59, 60, 26.01, 62.05, 63, or the field name such as txid, name, city, key, amount, currency, country, crc or mcc; leave out for every rule","title":"Field"}},"title":"pix_field_rulesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}