What you are building
Design the interfaces and persistent state for a background job processor that charges an external API and records the result. Queue delivery is at least once, workers may crash at any point, and the external API supports caller-provided idempotency keys.