Know Your Customer
...
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 true false 140false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type 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 true falsefalse left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type 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 true falsefalse left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type 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 true falsefalse left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type 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 } } true falsefalse left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type 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!