Arizona announced the deal Wednesday.
If the Diamondbacks add Punto to their 40-man roster, they will have to pay him only the major league minimum of $507,500 -- or a prorated share if he's added after Opening Day. Punto is guaranteed $2.75 million from the Oakland Athletics, who released him in December.
Punto has played for six clubs in parts of 14 major league seasons. He has a career .243 batting average. Last season, he appeared in 73 games with the A's, hitting .207.
Punto spent time with Philadelphia, Minnesota, St. Louis, Boston, the Los Angeles Dodgers and Oakland.