Heat oil in a large saucepan over medium heat. Add onion and cook, stirring, until beginning to soften, 2 to 3 minutes. Add chili powder and cumin and cook, stirring, 1 minute more. Add beans, water, salsa and salt. Bring to a boil; reduce heat and simmer for 10 minutes. Remove from the heat and stir in lime juice.
Use an immersion blender to puree the soup but leave some of the beans whole.