Know Your Customer
...
Global
Americas

Mexico RFC Fetch

overview the mexico rfc fetch api is designed to facilitate the retrieval of detailed information about registered federal contributors (rfc) in mexico this asynchronous api mechanism involves two api calls the first to submit a request and the second to retrieve the result either via a webhook callback or a direct fetch using the request id use case this api is beneficial for financial institutions, tax advisors, and businesses that need to verify the authenticity of rfc details either for individuals (personal finance pf) or entities (personal morales pm) it supports compliance checks, customer verification during onboarding, and ensures accurate tax related documentation api details api 1 rfc reqest request body initiate the process by submitting the rfc data preproduction curl location 'https //api preproduction signzy app/api/v3/global kyc fetch/mx/rfc' \\ \ header 'authorization < auth token >' \\ \ header 'content type application/json' \\ \ data raw '{ "rfc" "dimv970321k28", "accounttype" "pf", "consent" true, "callbackurl" "https //webhook site/fh37b379 f561 4dbe 9160 7245f74cd80b" }' production curl location 'https //api signzy app/api/v3/global kyc fetch/mx/rfc' \\ \ header 'authorization < auth token >' \\ \ header 'content type application/json' \\ \ data raw '{ "rfc" "dimv970321k28", "accounttype" "pf", "consent" true, "callbackurl" "https //webhook site/fh37b379 f561 4dbe 9160 7245f74cd80b" }' request body parameters parameter description optional/mandatory data type rfc the rfc number to retrieve data for please see supported regex below mandatory string accounttype type of account, either 'pf' for individual or 'pm' for business/legal entitiy mandatory string consent consent to process the data mandatory boolean callbackurl url to receive the callback with results optional string rfc input field regex for individuals, it consists of 13 characters (4 letters followed by 6 digits and 3 alphanumeric characters) and for legal entities (and certain legal arrangements), it consists of 12 characters (3 letters followed by 6 digits and 3 alphanumeric characters) the first letters (4 or 3, respectively) belong to the name, the next 6 digits are the date of birth or date of incorporation, and the last 3 (or 2, for legal entities) belong to the check digits (homoclave) response body the initial api call provides a processing status 102 successful { "result" { "requestid" "6710fe960ddfa331ae1608d6", "statuscode" 102, "status" "processing" } } response body parameters parameter description data type requestid unique identifier for the request string statuscode status code of the request (102 = processing) integer status status of the request, e g , 'processing' string api 2 rfc data retrieval request body retrieve the results using the requestid preproduction curl location 'https //api preproduction signzy app/api/v3/global kyc fetch/mx/rfc get data' \\ \ header 'authorization < auth token >' \\ \ header 'content type application/json' \\ \ data raw '{ "requestid" "67fc9c03fe2688109ffdda4e" }' production curl location 'https //api preproduction signzy app/api/v3/global kyc fetch/mx/rfc get data' \\ \ header 'authorization < auth token >' \\ \ header 'content type application/json' \\ \ data raw '{ "requestid" "67fc9c03fe2688109ffdda4e" }' request body parameters parameter description optional/mandatory data type requestid the requestid returned from the first api call mandatory string response body the final data can be fetched or received through the webhook successful response { "result" { "requestid" "671100b90yyfa331ae1608f7", "input" { "rfc" "dimv970321k28", "accounttype" "pf", "consent" true }, "status" "success", "result" { "rfc" "dimv970321k28", "state" "active", "type" "digital seal certificate", "name" "victor agustin diaz mendez", "orgname" "victor agustin diaz mendez", "email" "mars vic5\@gmail com", "curp" "dimv970321hslznc06", "issuedate" "2024 06 26 02 58 10", "expirydate" "2028 06 26 02 58 10", "counselrfc" "", "counselcurp" "" } } } successful response (when callback url is provided) { "result" { "requestid" "67fc9f56fe2688109ffdda54", "input" { "rfc" "aaa080808hl8", "accounttype" "pf", "consent" true, "callbackurl" "https //webhook site/2112a9085 4b26 aa03 3b05e80fd8c7" }, "status" "success", "result" { "rfc" "aaa080808hl8", "state" "active", "type" "advanced electronic signature", "name" "asesores en avaluos y activos sa de cv", "orgname" "asesores en avaluos y activos sa de cv", "email" "marianela\@asesoresenavaluos com", "curp" "", "issuedate" "2025 02 25 15 36 55", "expirydate" "2029 02 25 15 37 35", "counselrfc" "qudm8705248v6", "counselcurp" "qudm870524mdfnzr05" } } } no data found { "result" { "requestid" "67fc9c03fe2688109ffdda4e", "input" { "rfc" "dimv970321k21", "accounttype" "pm", "consent" true, "callbackurl" "https //webhook site/2112 4a25 4b26 aa03 3b05e80fd8c7" }, "status" "failure", "result" { "statuscode" 200, "message" "provided rfc is invalid or does not exist, or the account type does not match" } } } response body parameters the detailed response includes the original input and the fetched rfc details parameter description data type requestid unique identifier for the retrieval request string input object containing detailed rfc information object input rfc rfc provided in the input string input accounttype account type provided in the input string input consent consent provided in the input boolean status status of the request, e g , 'success' string result object containing detailed rfc information object result rfc rfc number as originally requested string result state current status of the rfc whethere "active" or not string result type type of the rfc string result curp curp associated with the rfc (if available) string result name name associated with the rfc string result orgname company name if 'pm' account type string result email contact email associated with the rfc string result issuedate issue date of rfc string result expirydate expiry date of rfc string result counselrfc rfc of the counsel string result counselcurp curp of the counsel string error code and response mapping 400 (bad request) { "error" { "name" "error", "message" "invalid rfc number", "status" 400, "reason" "validation error", "type" "bad request", "statuscode" 400 } } \ { "error" { "name" "error", "message" "the rfc must be 13 characters long for accounttype 'pf' (format 4 letters, 6 digits, 3 alphanumeric characters) ", "status" 400, "reason" "validation request", "type" "bad request", "statuscode" 400 } } \ { "error" { "name" "error", "message" "the rfc must be 12 characters long for accounttype 'pm' (format 3 letters, 6 digits, 3 alphanumeric characters) ", "status" 400, "reason" "validation request", "type" "bad request", "statuscode" 400 } } \ { "error" { "name" "error", "message" "accounttype can be either pf or pm", "status" 400, "reason" "validation request", "type" "bad request", "statuscode" 400 } } \ { "error" { "name" "error", "message" "/rfc/ length must be 12 characters long", "status" 400, "reason" "validation request", "type" "bad request", "statuscode" 400 } } \ { "error" { "name" "error", "message" "/rfc/ length must be 13 characters long", "status" 400, "reason" "validation request", "type" "bad request", "statuscode" 400 } } 400 (bad request) { "error" { "name" "error", "message" "requestid not found", "status" 400, "reason" "bad request", "type" "bad request", "statuscode" 400 } } \ { "error" { "name" "error", "message" "invalid requestid", "status" 400, "reason" "validation request", "type" "bad request", "statuscode" 400 } } 401(unauthorized) { "error" { "name" "error", "message" "invalid authentication credentials", "status" 401, "reason" "authentication error", "type" "bad request", "statuscode" 401 } } 403 (forbidden) { "error" { "name" "error", "message" "forbidden", "reason" "error", "type" "bad request", "statuscode" "403" } } 500 (internal server error) { "error" { "name" "error", "message" "internal server error", "status" 500, "reason" "error", "type" "bad request", "statuscode" 500 } } 409(upstream down { "error" { "name" "error", "message" "upstream down", "status" 409, "reason" "error", "type" "bad request", "statuscode" 409 } } field type description name string text displayed on the screen explaining error type reason string reason for the error status number http status code message string error message indicating an upstream error type string error type statuscode number status code representing the error scenario getting help please feel free to contact us if you have any questions, require clarification, or have ideas for how to make the documents or any of our services better you can reach out to us at help\@signzy com we strive to provide prompt and reliable assistance, ensuring your queries are addressed effectively we value your feedback and are committed to making your experience smooth and enjoyable our team is dedicated to assisting you with any needs you may have thank you for choosing our services we look forward to helping you!